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