1 /*** Autogenerated by WIDL 3.19 from direct-x/include/mmstream.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 __mmstream_h__ 16 #define __mmstream_h__ 17 18 /* Forward declarations */ 19 20 #ifndef __IMultiMediaStream_FWD_DEFINED__ 21 #define __IMultiMediaStream_FWD_DEFINED__ 22 typedef interface IMultiMediaStream IMultiMediaStream; 23 #ifdef __cplusplus 24 interface IMultiMediaStream; 25 #endif /* __cplusplus */ 26 #endif 27 28 #ifndef __IMediaStream_FWD_DEFINED__ 29 #define __IMediaStream_FWD_DEFINED__ 30 typedef interface IMediaStream IMediaStream; 31 #ifdef __cplusplus 32 interface IMediaStream; 33 #endif /* __cplusplus */ 34 #endif 35 36 #ifndef __IStreamSample_FWD_DEFINED__ 37 #define __IStreamSample_FWD_DEFINED__ 38 typedef interface IStreamSample IStreamSample; 39 #ifdef __cplusplus 40 interface IStreamSample; 41 #endif /* __cplusplus */ 42 #endif 43 44 /* Headers for imported files */ 45 46 #include <unknwn.h> 47 48 #ifdef __cplusplus 49 extern "C" { 50 #endif 51 52 #define MS_ERROR_CODE(x) MAKE_HRESULT(1, FACILITY_ITF, (x) + 0x400) 53 #define MS_SUCCESS_CODE(x) MAKE_HRESULT(0, FACILITY_ITF, x) 54 #define MS_S_PENDING MS_SUCCESS_CODE(1) 55 #define MS_S_NOUPDATE MS_SUCCESS_CODE(2) 56 #define MS_S_ENDOFSTREAM MS_SUCCESS_CODE(3) 57 #define MS_E_SAMPLEALLOC MS_ERROR_CODE(1) 58 #define MS_E_PURPOSEID MS_ERROR_CODE(2) 59 #define MS_E_NOSTREAM MS_ERROR_CODE(3) 60 #define MS_E_NOSEEKING MS_ERROR_CODE(4) 61 #define MS_E_INCOMPATIBLE MS_ERROR_CODE(5) 62 #define MS_E_BUSY MS_ERROR_CODE(6) 63 #define MS_E_NOTINIT MS_ERROR_CODE(7) 64 #define MS_E_SOURCEALREADYDEFINED MS_ERROR_CODE(8) 65 #define MS_E_INVALIDSTREAMTYPE MS_ERROR_CODE(9) 66 #define MS_E_NOTRUNNING MS_ERROR_CODE(10) 67 DEFINE_GUID(MSPID_PrimaryVideo, 0xa35ff56a, 0x9fda, 0x11d0, 0x8f, 0xdf, 0x0, 0xc0, 0x4f, 0xd9, 0x18, 0x9d); 68 DEFINE_GUID(MSPID_PrimaryAudio, 0xa35ff56b, 0x9fda, 0x11d0, 0x8f, 0xdf, 0x0, 0xc0, 0x4f, 0xd9, 0x18, 0x9d); 69 #if 0 70 typedef void *PAPCFUNC; 71 #endif 72 typedef LONGLONG STREAM_TIME; 73 typedef GUID MSPID; 74 typedef REFGUID REFMSPID; 75 typedef enum __WIDL_mmstream_generated_name_00000002 { 76 STREAMTYPE_READ = 0, 77 STREAMTYPE_WRITE = 1, 78 STREAMTYPE_TRANSFORM = 2 79 } STREAM_TYPE; 80 typedef enum __WIDL_mmstream_generated_name_00000003 { 81 STREAMSTATE_STOP = 0, 82 STREAMSTATE_RUN = 1 83 } STREAM_STATE; 84 typedef enum __WIDL_mmstream_generated_name_00000004 { 85 COMPSTAT_NOUPDATEOK = 0x1, 86 COMPSTAT_WAIT = 0x2, 87 COMPSTAT_ABORT = 0x4 88 } COMPLETION_STATUS_FLAGS; 89 enum { 90 MMSSF_HASCLOCK = 0x1, 91 MMSSF_SUPPORTSEEK = 0x2, 92 MMSSF_ASYNCHRONOUS = 0x4 93 }; 94 enum { 95 SSUPDATE_ASYNC = 0x1, 96 SSUPDATE_CONTINUOUS = 0x2 97 }; 98 #ifndef __IMultiMediaStream_FWD_DEFINED__ 99 #define __IMultiMediaStream_FWD_DEFINED__ 100 typedef interface IMultiMediaStream IMultiMediaStream; 101 #ifdef __cplusplus 102 interface IMultiMediaStream; 103 #endif /* __cplusplus */ 104 #endif 105 106 #ifndef __IMediaStream_FWD_DEFINED__ 107 #define __IMediaStream_FWD_DEFINED__ 108 typedef interface IMediaStream IMediaStream; 109 #ifdef __cplusplus 110 interface IMediaStream; 111 #endif /* __cplusplus */ 112 #endif 113 114 #ifndef __IStreamSample_FWD_DEFINED__ 115 #define __IStreamSample_FWD_DEFINED__ 116 typedef interface IStreamSample IStreamSample; 117 #ifdef __cplusplus 118 interface IStreamSample; 119 #endif /* __cplusplus */ 120 #endif 121 122 /***************************************************************************** 123 * IMultiMediaStream interface 124 */ 125 #ifndef __IMultiMediaStream_INTERFACE_DEFINED__ 126 #define __IMultiMediaStream_INTERFACE_DEFINED__ 127 128 DEFINE_GUID(IID_IMultiMediaStream, 0xb502d1bc, 0x9a57, 0x11d0, 0x8f,0xde, 0x00,0xc0,0x4f,0xd9,0x18,0x9d); 129 #if defined(__cplusplus) && !defined(CINTERFACE) 130 MIDL_INTERFACE("b502d1bc-9a57-11d0-8fde-00c04fd9189d") 131 IMultiMediaStream : public IUnknown 132 { 133 virtual HRESULT STDMETHODCALLTYPE GetInformation( 134 DWORD *pdwFlags, 135 STREAM_TYPE *pStreamType) = 0; 136 137 virtual HRESULT STDMETHODCALLTYPE GetMediaStream( 138 REFMSPID idPurpose, 139 IMediaStream **ppMediaStream) = 0; 140 141 virtual HRESULT STDMETHODCALLTYPE EnumMediaStreams( 142 LONG Index, 143 IMediaStream **ppMediaStream) = 0; 144 145 virtual HRESULT STDMETHODCALLTYPE GetState( 146 STREAM_STATE *pCurrentState) = 0; 147 148 virtual HRESULT STDMETHODCALLTYPE SetState( 149 STREAM_STATE NewState) = 0; 150 151 virtual HRESULT STDMETHODCALLTYPE GetTime( 152 STREAM_TIME *pCurrentTime) = 0; 153 154 virtual HRESULT STDMETHODCALLTYPE GetDuration( 155 STREAM_TIME *pDuration) = 0; 156 157 virtual HRESULT STDMETHODCALLTYPE Seek( 158 STREAM_TIME SeekTime) = 0; 159 160 virtual HRESULT STDMETHODCALLTYPE GetEndOfStreamEventHandle( 161 HANDLE *phEOS) = 0; 162 163 }; 164 #ifdef __CRT_UUID_DECL 165 __CRT_UUID_DECL(IMultiMediaStream, 0xb502d1bc, 0x9a57, 0x11d0, 0x8f,0xde, 0x00,0xc0,0x4f,0xd9,0x18,0x9d) 166 #endif 167 #else 168 typedef struct IMultiMediaStreamVtbl { 169 BEGIN_INTERFACE 170 171 /*** IUnknown methods ***/ 172 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 173 IMultiMediaStream *This, 174 REFIID riid, 175 void **ppvObject); 176 177 ULONG (STDMETHODCALLTYPE *AddRef)( 178 IMultiMediaStream *This); 179 180 ULONG (STDMETHODCALLTYPE *Release)( 181 IMultiMediaStream *This); 182 183 /*** IMultiMediaStream methods ***/ 184 HRESULT (STDMETHODCALLTYPE *GetInformation)( 185 IMultiMediaStream *This, 186 DWORD *pdwFlags, 187 STREAM_TYPE *pStreamType); 188 189 HRESULT (STDMETHODCALLTYPE *GetMediaStream)( 190 IMultiMediaStream *This, 191 REFMSPID idPurpose, 192 IMediaStream **ppMediaStream); 193 194 HRESULT (STDMETHODCALLTYPE *EnumMediaStreams)( 195 IMultiMediaStream *This, 196 LONG Index, 197 IMediaStream **ppMediaStream); 198 199 HRESULT (STDMETHODCALLTYPE *GetState)( 200 IMultiMediaStream *This, 201 STREAM_STATE *pCurrentState); 202 203 HRESULT (STDMETHODCALLTYPE *SetState)( 204 IMultiMediaStream *This, 205 STREAM_STATE NewState); 206 207 HRESULT (STDMETHODCALLTYPE *GetTime)( 208 IMultiMediaStream *This, 209 STREAM_TIME *pCurrentTime); 210 211 HRESULT (STDMETHODCALLTYPE *GetDuration)( 212 IMultiMediaStream *This, 213 STREAM_TIME *pDuration); 214 215 HRESULT (STDMETHODCALLTYPE *Seek)( 216 IMultiMediaStream *This, 217 STREAM_TIME SeekTime); 218 219 HRESULT (STDMETHODCALLTYPE *GetEndOfStreamEventHandle)( 220 IMultiMediaStream *This, 221 HANDLE *phEOS); 222 223 END_INTERFACE 224 } IMultiMediaStreamVtbl; 225 226 interface IMultiMediaStream { 227 CONST_VTBL IMultiMediaStreamVtbl* lpVtbl; 228 }; 229 230 #ifdef COBJMACROS 231 #ifndef WIDL_C_INLINE_WRAPPERS 232 /*** IUnknown methods ***/ 233 #define IMultiMediaStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 234 #define IMultiMediaStream_AddRef(This) (This)->lpVtbl->AddRef(This) 235 #define IMultiMediaStream_Release(This) (This)->lpVtbl->Release(This) 236 /*** IMultiMediaStream methods ***/ 237 #define IMultiMediaStream_GetInformation(This,pdwFlags,pStreamType) (This)->lpVtbl->GetInformation(This,pdwFlags,pStreamType) 238 #define IMultiMediaStream_GetMediaStream(This,idPurpose,ppMediaStream) (This)->lpVtbl->GetMediaStream(This,idPurpose,ppMediaStream) 239 #define IMultiMediaStream_EnumMediaStreams(This,Index,ppMediaStream) (This)->lpVtbl->EnumMediaStreams(This,Index,ppMediaStream) 240 #define IMultiMediaStream_GetState(This,pCurrentState) (This)->lpVtbl->GetState(This,pCurrentState) 241 #define IMultiMediaStream_SetState(This,NewState) (This)->lpVtbl->SetState(This,NewState) 242 #define IMultiMediaStream_GetTime(This,pCurrentTime) (This)->lpVtbl->GetTime(This,pCurrentTime) 243 #define IMultiMediaStream_GetDuration(This,pDuration) (This)->lpVtbl->GetDuration(This,pDuration) 244 #define IMultiMediaStream_Seek(This,SeekTime) (This)->lpVtbl->Seek(This,SeekTime) 245 #define IMultiMediaStream_GetEndOfStreamEventHandle(This,phEOS) (This)->lpVtbl->GetEndOfStreamEventHandle(This,phEOS) 246 #else 247 /*** IUnknown methods ***/ 248 static FORCEINLINE HRESULT IMultiMediaStream_QueryInterface(IMultiMediaStream* This,REFIID riid,void **ppvObject) { 249 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 250 } 251 static FORCEINLINE ULONG IMultiMediaStream_AddRef(IMultiMediaStream* This) { 252 return This->lpVtbl->AddRef(This); 253 } 254 static FORCEINLINE ULONG IMultiMediaStream_Release(IMultiMediaStream* This) { 255 return This->lpVtbl->Release(This); 256 } 257 /*** IMultiMediaStream methods ***/ 258 static FORCEINLINE HRESULT IMultiMediaStream_GetInformation(IMultiMediaStream* This,DWORD *pdwFlags,STREAM_TYPE *pStreamType) { 259 return This->lpVtbl->GetInformation(This,pdwFlags,pStreamType); 260 } 261 static FORCEINLINE HRESULT IMultiMediaStream_GetMediaStream(IMultiMediaStream* This,REFMSPID idPurpose,IMediaStream **ppMediaStream) { 262 return This->lpVtbl->GetMediaStream(This,idPurpose,ppMediaStream); 263 } 264 static FORCEINLINE HRESULT IMultiMediaStream_EnumMediaStreams(IMultiMediaStream* This,LONG Index,IMediaStream **ppMediaStream) { 265 return This->lpVtbl->EnumMediaStreams(This,Index,ppMediaStream); 266 } 267 static FORCEINLINE HRESULT IMultiMediaStream_GetState(IMultiMediaStream* This,STREAM_STATE *pCurrentState) { 268 return This->lpVtbl->GetState(This,pCurrentState); 269 } 270 static FORCEINLINE HRESULT IMultiMediaStream_SetState(IMultiMediaStream* This,STREAM_STATE NewState) { 271 return This->lpVtbl->SetState(This,NewState); 272 } 273 static FORCEINLINE HRESULT IMultiMediaStream_GetTime(IMultiMediaStream* This,STREAM_TIME *pCurrentTime) { 274 return This->lpVtbl->GetTime(This,pCurrentTime); 275 } 276 static FORCEINLINE HRESULT IMultiMediaStream_GetDuration(IMultiMediaStream* This,STREAM_TIME *pDuration) { 277 return This->lpVtbl->GetDuration(This,pDuration); 278 } 279 static FORCEINLINE HRESULT IMultiMediaStream_Seek(IMultiMediaStream* This,STREAM_TIME SeekTime) { 280 return This->lpVtbl->Seek(This,SeekTime); 281 } 282 static FORCEINLINE HRESULT IMultiMediaStream_GetEndOfStreamEventHandle(IMultiMediaStream* This,HANDLE *phEOS) { 283 return This->lpVtbl->GetEndOfStreamEventHandle(This,phEOS); 284 } 285 #endif 286 #endif 287 288 #endif 289 290 291 #endif /* __IMultiMediaStream_INTERFACE_DEFINED__ */ 292 293 /***************************************************************************** 294 * IMediaStream interface 295 */ 296 #ifndef __IMediaStream_INTERFACE_DEFINED__ 297 #define __IMediaStream_INTERFACE_DEFINED__ 298 299 DEFINE_GUID(IID_IMediaStream, 0xb502d1bd, 0x9a57, 0x11d0, 0x8f,0xde, 0x00,0xc0,0x4f,0xd9,0x18,0x9d); 300 #if defined(__cplusplus) && !defined(CINTERFACE) 301 MIDL_INTERFACE("b502d1bd-9a57-11d0-8fde-00c04fd9189d") 302 IMediaStream : public IUnknown 303 { 304 virtual HRESULT STDMETHODCALLTYPE GetMultiMediaStream( 305 IMultiMediaStream **ppMultiMediaStream) = 0; 306 307 virtual HRESULT STDMETHODCALLTYPE GetInformation( 308 MSPID *pPurposeId, 309 STREAM_TYPE *pType) = 0; 310 311 virtual HRESULT STDMETHODCALLTYPE SetSameFormat( 312 IMediaStream *pStreamThatHasDesiredFormat, 313 DWORD dwFlags) = 0; 314 315 virtual HRESULT STDMETHODCALLTYPE AllocateSample( 316 DWORD dwFlags, 317 IStreamSample **ppSample) = 0; 318 319 virtual HRESULT STDMETHODCALLTYPE CreateSharedSample( 320 IStreamSample *pExistingSample, 321 DWORD dwFlags, 322 IStreamSample **ppNewSample) = 0; 323 324 virtual HRESULT STDMETHODCALLTYPE SendEndOfStream( 325 DWORD dwFlags) = 0; 326 327 }; 328 #ifdef __CRT_UUID_DECL 329 __CRT_UUID_DECL(IMediaStream, 0xb502d1bd, 0x9a57, 0x11d0, 0x8f,0xde, 0x00,0xc0,0x4f,0xd9,0x18,0x9d) 330 #endif 331 #else 332 typedef struct IMediaStreamVtbl { 333 BEGIN_INTERFACE 334 335 /*** IUnknown methods ***/ 336 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 337 IMediaStream *This, 338 REFIID riid, 339 void **ppvObject); 340 341 ULONG (STDMETHODCALLTYPE *AddRef)( 342 IMediaStream *This); 343 344 ULONG (STDMETHODCALLTYPE *Release)( 345 IMediaStream *This); 346 347 /*** IMediaStream methods ***/ 348 HRESULT (STDMETHODCALLTYPE *GetMultiMediaStream)( 349 IMediaStream *This, 350 IMultiMediaStream **ppMultiMediaStream); 351 352 HRESULT (STDMETHODCALLTYPE *GetInformation)( 353 IMediaStream *This, 354 MSPID *pPurposeId, 355 STREAM_TYPE *pType); 356 357 HRESULT (STDMETHODCALLTYPE *SetSameFormat)( 358 IMediaStream *This, 359 IMediaStream *pStreamThatHasDesiredFormat, 360 DWORD dwFlags); 361 362 HRESULT (STDMETHODCALLTYPE *AllocateSample)( 363 IMediaStream *This, 364 DWORD dwFlags, 365 IStreamSample **ppSample); 366 367 HRESULT (STDMETHODCALLTYPE *CreateSharedSample)( 368 IMediaStream *This, 369 IStreamSample *pExistingSample, 370 DWORD dwFlags, 371 IStreamSample **ppNewSample); 372 373 HRESULT (STDMETHODCALLTYPE *SendEndOfStream)( 374 IMediaStream *This, 375 DWORD dwFlags); 376 377 END_INTERFACE 378 } IMediaStreamVtbl; 379 380 interface IMediaStream { 381 CONST_VTBL IMediaStreamVtbl* lpVtbl; 382 }; 383 384 #ifdef COBJMACROS 385 #ifndef WIDL_C_INLINE_WRAPPERS 386 /*** IUnknown methods ***/ 387 #define IMediaStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 388 #define IMediaStream_AddRef(This) (This)->lpVtbl->AddRef(This) 389 #define IMediaStream_Release(This) (This)->lpVtbl->Release(This) 390 /*** IMediaStream methods ***/ 391 #define IMediaStream_GetMultiMediaStream(This,ppMultiMediaStream) (This)->lpVtbl->GetMultiMediaStream(This,ppMultiMediaStream) 392 #define IMediaStream_GetInformation(This,pPurposeId,pType) (This)->lpVtbl->GetInformation(This,pPurposeId,pType) 393 #define IMediaStream_SetSameFormat(This,pStreamThatHasDesiredFormat,dwFlags) (This)->lpVtbl->SetSameFormat(This,pStreamThatHasDesiredFormat,dwFlags) 394 #define IMediaStream_AllocateSample(This,dwFlags,ppSample) (This)->lpVtbl->AllocateSample(This,dwFlags,ppSample) 395 #define IMediaStream_CreateSharedSample(This,pExistingSample,dwFlags,ppNewSample) (This)->lpVtbl->CreateSharedSample(This,pExistingSample,dwFlags,ppNewSample) 396 #define IMediaStream_SendEndOfStream(This,dwFlags) (This)->lpVtbl->SendEndOfStream(This,dwFlags) 397 #else 398 /*** IUnknown methods ***/ 399 static FORCEINLINE HRESULT IMediaStream_QueryInterface(IMediaStream* This,REFIID riid,void **ppvObject) { 400 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 401 } 402 static FORCEINLINE ULONG IMediaStream_AddRef(IMediaStream* This) { 403 return This->lpVtbl->AddRef(This); 404 } 405 static FORCEINLINE ULONG IMediaStream_Release(IMediaStream* This) { 406 return This->lpVtbl->Release(This); 407 } 408 /*** IMediaStream methods ***/ 409 static FORCEINLINE HRESULT IMediaStream_GetMultiMediaStream(IMediaStream* This,IMultiMediaStream **ppMultiMediaStream) { 410 return This->lpVtbl->GetMultiMediaStream(This,ppMultiMediaStream); 411 } 412 static FORCEINLINE HRESULT IMediaStream_GetInformation(IMediaStream* This,MSPID *pPurposeId,STREAM_TYPE *pType) { 413 return This->lpVtbl->GetInformation(This,pPurposeId,pType); 414 } 415 static FORCEINLINE HRESULT IMediaStream_SetSameFormat(IMediaStream* This,IMediaStream *pStreamThatHasDesiredFormat,DWORD dwFlags) { 416 return This->lpVtbl->SetSameFormat(This,pStreamThatHasDesiredFormat,dwFlags); 417 } 418 static FORCEINLINE HRESULT IMediaStream_AllocateSample(IMediaStream* This,DWORD dwFlags,IStreamSample **ppSample) { 419 return This->lpVtbl->AllocateSample(This,dwFlags,ppSample); 420 } 421 static FORCEINLINE HRESULT IMediaStream_CreateSharedSample(IMediaStream* This,IStreamSample *pExistingSample,DWORD dwFlags,IStreamSample **ppNewSample) { 422 return This->lpVtbl->CreateSharedSample(This,pExistingSample,dwFlags,ppNewSample); 423 } 424 static FORCEINLINE HRESULT IMediaStream_SendEndOfStream(IMediaStream* This,DWORD dwFlags) { 425 return This->lpVtbl->SendEndOfStream(This,dwFlags); 426 } 427 #endif 428 #endif 429 430 #endif 431 432 433 #endif /* __IMediaStream_INTERFACE_DEFINED__ */ 434 435 /***************************************************************************** 436 * IStreamSample interface 437 */ 438 #ifndef __IStreamSample_INTERFACE_DEFINED__ 439 #define __IStreamSample_INTERFACE_DEFINED__ 440 441 DEFINE_GUID(IID_IStreamSample, 0xb502d1be, 0x9a57, 0x11d0, 0x8f,0xde, 0x00,0xc0,0x4f,0xd9,0x18,0x9d); 442 #if defined(__cplusplus) && !defined(CINTERFACE) 443 MIDL_INTERFACE("b502d1be-9a57-11d0-8fde-00c04fd9189d") 444 IStreamSample : public IUnknown 445 { 446 virtual HRESULT STDMETHODCALLTYPE GetMediaStream( 447 IMediaStream **ppMediaStream) = 0; 448 449 virtual HRESULT STDMETHODCALLTYPE GetSampleTimes( 450 STREAM_TIME *pStartTime, 451 STREAM_TIME *pEndTime, 452 STREAM_TIME *pCurrentTime) = 0; 453 454 virtual HRESULT STDMETHODCALLTYPE SetSampleTimes( 455 const STREAM_TIME *pStartTime, 456 const STREAM_TIME *pEndTime) = 0; 457 458 virtual HRESULT STDMETHODCALLTYPE Update( 459 DWORD dwFlags, 460 HANDLE hEvent, 461 PAPCFUNC pfnAPC, 462 DWORD dwAPCData) = 0; 463 464 virtual HRESULT STDMETHODCALLTYPE CompletionStatus( 465 DWORD dwFlags, 466 DWORD dwMilliseconds) = 0; 467 468 }; 469 #ifdef __CRT_UUID_DECL 470 __CRT_UUID_DECL(IStreamSample, 0xb502d1be, 0x9a57, 0x11d0, 0x8f,0xde, 0x00,0xc0,0x4f,0xd9,0x18,0x9d) 471 #endif 472 #else 473 typedef struct IStreamSampleVtbl { 474 BEGIN_INTERFACE 475 476 /*** IUnknown methods ***/ 477 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 478 IStreamSample *This, 479 REFIID riid, 480 void **ppvObject); 481 482 ULONG (STDMETHODCALLTYPE *AddRef)( 483 IStreamSample *This); 484 485 ULONG (STDMETHODCALLTYPE *Release)( 486 IStreamSample *This); 487 488 /*** IStreamSample methods ***/ 489 HRESULT (STDMETHODCALLTYPE *GetMediaStream)( 490 IStreamSample *This, 491 IMediaStream **ppMediaStream); 492 493 HRESULT (STDMETHODCALLTYPE *GetSampleTimes)( 494 IStreamSample *This, 495 STREAM_TIME *pStartTime, 496 STREAM_TIME *pEndTime, 497 STREAM_TIME *pCurrentTime); 498 499 HRESULT (STDMETHODCALLTYPE *SetSampleTimes)( 500 IStreamSample *This, 501 const STREAM_TIME *pStartTime, 502 const STREAM_TIME *pEndTime); 503 504 HRESULT (STDMETHODCALLTYPE *Update)( 505 IStreamSample *This, 506 DWORD dwFlags, 507 HANDLE hEvent, 508 PAPCFUNC pfnAPC, 509 DWORD dwAPCData); 510 511 HRESULT (STDMETHODCALLTYPE *CompletionStatus)( 512 IStreamSample *This, 513 DWORD dwFlags, 514 DWORD dwMilliseconds); 515 516 END_INTERFACE 517 } IStreamSampleVtbl; 518 519 interface IStreamSample { 520 CONST_VTBL IStreamSampleVtbl* lpVtbl; 521 }; 522 523 #ifdef COBJMACROS 524 #ifndef WIDL_C_INLINE_WRAPPERS 525 /*** IUnknown methods ***/ 526 #define IStreamSample_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 527 #define IStreamSample_AddRef(This) (This)->lpVtbl->AddRef(This) 528 #define IStreamSample_Release(This) (This)->lpVtbl->Release(This) 529 /*** IStreamSample methods ***/ 530 #define IStreamSample_GetMediaStream(This,ppMediaStream) (This)->lpVtbl->GetMediaStream(This,ppMediaStream) 531 #define IStreamSample_GetSampleTimes(This,pStartTime,pEndTime,pCurrentTime) (This)->lpVtbl->GetSampleTimes(This,pStartTime,pEndTime,pCurrentTime) 532 #define IStreamSample_SetSampleTimes(This,pStartTime,pEndTime) (This)->lpVtbl->SetSampleTimes(This,pStartTime,pEndTime) 533 #define IStreamSample_Update(This,dwFlags,hEvent,pfnAPC,dwAPCData) (This)->lpVtbl->Update(This,dwFlags,hEvent,pfnAPC,dwAPCData) 534 #define IStreamSample_CompletionStatus(This,dwFlags,dwMilliseconds) (This)->lpVtbl->CompletionStatus(This,dwFlags,dwMilliseconds) 535 #else 536 /*** IUnknown methods ***/ 537 static FORCEINLINE HRESULT IStreamSample_QueryInterface(IStreamSample* This,REFIID riid,void **ppvObject) { 538 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 539 } 540 static FORCEINLINE ULONG IStreamSample_AddRef(IStreamSample* This) { 541 return This->lpVtbl->AddRef(This); 542 } 543 static FORCEINLINE ULONG IStreamSample_Release(IStreamSample* This) { 544 return This->lpVtbl->Release(This); 545 } 546 /*** IStreamSample methods ***/ 547 static FORCEINLINE HRESULT IStreamSample_GetMediaStream(IStreamSample* This,IMediaStream **ppMediaStream) { 548 return This->lpVtbl->GetMediaStream(This,ppMediaStream); 549 } 550 static FORCEINLINE HRESULT IStreamSample_GetSampleTimes(IStreamSample* This,STREAM_TIME *pStartTime,STREAM_TIME *pEndTime,STREAM_TIME *pCurrentTime) { 551 return This->lpVtbl->GetSampleTimes(This,pStartTime,pEndTime,pCurrentTime); 552 } 553 static FORCEINLINE HRESULT IStreamSample_SetSampleTimes(IStreamSample* This,const STREAM_TIME *pStartTime,const STREAM_TIME *pEndTime) { 554 return This->lpVtbl->SetSampleTimes(This,pStartTime,pEndTime); 555 } 556 static FORCEINLINE HRESULT IStreamSample_Update(IStreamSample* This,DWORD dwFlags,HANDLE hEvent,PAPCFUNC pfnAPC,DWORD dwAPCData) { 557 return This->lpVtbl->Update(This,dwFlags,hEvent,pfnAPC,dwAPCData); 558 } 559 static FORCEINLINE HRESULT IStreamSample_CompletionStatus(IStreamSample* This,DWORD dwFlags,DWORD dwMilliseconds) { 560 return This->lpVtbl->CompletionStatus(This,dwFlags,dwMilliseconds); 561 } 562 #endif 563 #endif 564 565 #endif 566 567 568 #endif /* __IStreamSample_INTERFACE_DEFINED__ */ 569 570 /* Begin additional prototypes for all interfaces */ 571 572 573 /* End additional prototypes */ 574 575 #ifdef __cplusplus 576 } 577 #endif 578 579 #endif /* __mmstream_h__ */ 580