1 /*** Autogenerated by WIDL 6.4 from include/amstream.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 __amstream_h__ 17 #define __amstream_h__ 18 19 /* Forward declarations */ 20 21 #ifndef __IDirectShowStream_FWD_DEFINED__ 22 #define __IDirectShowStream_FWD_DEFINED__ 23 typedef interface IDirectShowStream IDirectShowStream; 24 #ifdef __cplusplus 25 interface IDirectShowStream; 26 #endif /* __cplusplus */ 27 #endif 28 29 #ifndef __IAMMultiMediaStream_FWD_DEFINED__ 30 #define __IAMMultiMediaStream_FWD_DEFINED__ 31 typedef interface IAMMultiMediaStream IAMMultiMediaStream; 32 #ifdef __cplusplus 33 interface IAMMultiMediaStream; 34 #endif /* __cplusplus */ 35 #endif 36 37 #ifndef __IAMMediaStream_FWD_DEFINED__ 38 #define __IAMMediaStream_FWD_DEFINED__ 39 typedef interface IAMMediaStream IAMMediaStream; 40 #ifdef __cplusplus 41 interface IAMMediaStream; 42 #endif /* __cplusplus */ 43 #endif 44 45 #ifndef __IMediaStreamFilter_FWD_DEFINED__ 46 #define __IMediaStreamFilter_FWD_DEFINED__ 47 typedef interface IMediaStreamFilter IMediaStreamFilter; 48 #ifdef __cplusplus 49 interface IMediaStreamFilter; 50 #endif /* __cplusplus */ 51 #endif 52 53 #ifndef __IDirectDrawMediaSampleAllocator_FWD_DEFINED__ 54 #define __IDirectDrawMediaSampleAllocator_FWD_DEFINED__ 55 typedef interface IDirectDrawMediaSampleAllocator IDirectDrawMediaSampleAllocator; 56 #ifdef __cplusplus 57 interface IDirectDrawMediaSampleAllocator; 58 #endif /* __cplusplus */ 59 #endif 60 61 #ifndef __IDirectDrawMediaSample_FWD_DEFINED__ 62 #define __IDirectDrawMediaSample_FWD_DEFINED__ 63 typedef interface IDirectDrawMediaSample IDirectDrawMediaSample; 64 #ifdef __cplusplus 65 interface IDirectDrawMediaSample; 66 #endif /* __cplusplus */ 67 #endif 68 69 #ifndef __IAMMediaTypeStream_FWD_DEFINED__ 70 #define __IAMMediaTypeStream_FWD_DEFINED__ 71 typedef interface IAMMediaTypeStream IAMMediaTypeStream; 72 #ifdef __cplusplus 73 interface IAMMediaTypeStream; 74 #endif /* __cplusplus */ 75 #endif 76 77 #ifndef __IAMMediaTypeSample_FWD_DEFINED__ 78 #define __IAMMediaTypeSample_FWD_DEFINED__ 79 typedef interface IAMMediaTypeSample IAMMediaTypeSample; 80 #ifdef __cplusplus 81 interface IAMMediaTypeSample; 82 #endif /* __cplusplus */ 83 #endif 84 85 #ifndef __AMMultiMediaStream_FWD_DEFINED__ 86 #define __AMMultiMediaStream_FWD_DEFINED__ 87 #ifdef __cplusplus 88 typedef class AMMultiMediaStream AMMultiMediaStream; 89 #else 90 typedef struct AMMultiMediaStream AMMultiMediaStream; 91 #endif /* defined __cplusplus */ 92 #endif /* defined __AMMultiMediaStream_FWD_DEFINED__ */ 93 94 /* Headers for imported files */ 95 96 #include <unknwn.h> 97 #include <mmstream.h> 98 #include <strmif.h> 99 100 #ifdef __cplusplus 101 extern "C" { 102 #endif 103 104 #include <ddraw.h> 105 #include <mmsystem.h> 106 #include <mmstream.h> 107 #include <ddstream.h> 108 #include <austream.h> 109 #if 0 110 #ifndef __IDirectDraw_FWD_DEFINED__ 111 #define __IDirectDraw_FWD_DEFINED__ 112 typedef interface IDirectDraw IDirectDraw; 113 #ifdef __cplusplus 114 interface IDirectDraw; 115 #endif /* __cplusplus */ 116 #endif 117 118 #ifndef __IDirectDrawSurface_FWD_DEFINED__ 119 #define __IDirectDrawSurface_FWD_DEFINED__ 120 typedef interface IDirectDrawSurface IDirectDrawSurface; 121 #ifdef __cplusplus 122 interface IDirectDrawSurface; 123 #endif /* __cplusplus */ 124 #endif 125 126 #endif 127 #ifndef __IAMMultiMediaStream_FWD_DEFINED__ 128 #define __IAMMultiMediaStream_FWD_DEFINED__ 129 typedef interface IAMMultiMediaStream IAMMultiMediaStream; 130 #ifdef __cplusplus 131 interface IAMMultiMediaStream; 132 #endif /* __cplusplus */ 133 #endif 134 135 #ifndef __IAMMediaStream_FWD_DEFINED__ 136 #define __IAMMediaStream_FWD_DEFINED__ 137 typedef interface IAMMediaStream IAMMediaStream; 138 #ifdef __cplusplus 139 interface IAMMediaStream; 140 #endif /* __cplusplus */ 141 #endif 142 143 #ifndef __IMediaStreamFilter_FWD_DEFINED__ 144 #define __IMediaStreamFilter_FWD_DEFINED__ 145 typedef interface IMediaStreamFilter IMediaStreamFilter; 146 #ifdef __cplusplus 147 interface IMediaStreamFilter; 148 #endif /* __cplusplus */ 149 #endif 150 151 #ifndef __IAMMediaTypeStream_FWD_DEFINED__ 152 #define __IAMMediaTypeStream_FWD_DEFINED__ 153 typedef interface IAMMediaTypeStream IAMMediaTypeStream; 154 #ifdef __cplusplus 155 interface IAMMediaTypeStream; 156 #endif /* __cplusplus */ 157 #endif 158 159 #ifndef __IAMMediaTypeSample_FWD_DEFINED__ 160 #define __IAMMediaTypeSample_FWD_DEFINED__ 161 typedef interface IAMMediaTypeSample IAMMediaTypeSample; 162 #ifdef __cplusplus 163 interface IAMMediaTypeSample; 164 #endif /* __cplusplus */ 165 #endif 166 167 enum { 168 AMMSF_NOGRAPHTHREAD = 0x1 169 }; 170 enum { 171 AMMSF_ADDDEFAULTRENDERER = 0x1, 172 AMMSF_CREATEPEER = 0x2, 173 AMMSF_STOPIFNOSAMPLES = 0x4, 174 AMMSF_NOSTALL = 0x8 175 }; 176 enum { 177 AMMSF_RENDERTYPEMASK = 0x3, 178 AMMSF_RENDERTOEXISTING = 0x0, 179 AMMSF_RENDERALLSTREAMS = 0x1, 180 AMMSF_NORENDER = 0x2, 181 AMMSF_NOCLOCK = 0x4, 182 AMMSF_RUN = 0x8 183 }; 184 typedef enum __WIDL_amstream_generated_name_00000019 { 185 Disabled = 0, 186 ReadData = 1, 187 RenderData = 2 188 } OUTPUT_STATE; 189 /***************************************************************************** 190 * IDirectShowStream interface 191 */ 192 #ifndef __IDirectShowStream_INTERFACE_DEFINED__ 193 #define __IDirectShowStream_INTERFACE_DEFINED__ 194 195 DEFINE_GUID(IID_IDirectShowStream, 0x7db01c96, 0xc0c3, 0x11d0, 0x8f,0xf1, 0x00,0xc0,0x4f,0xd9,0x18,0x9d); 196 #if defined(__cplusplus) && !defined(CINTERFACE) 197 MIDL_INTERFACE("7db01c96-c0c3-11d0-8ff1-00c04fd9189d") 198 IDirectShowStream : public IDispatch 199 { 200 virtual HRESULT STDMETHODCALLTYPE get_FileName( 201 BSTR *pVal) = 0; 202 203 virtual HRESULT STDMETHODCALLTYPE put_FileName( 204 BSTR newVal) = 0; 205 206 virtual HRESULT STDMETHODCALLTYPE get_Video( 207 OUTPUT_STATE *pVal) = 0; 208 209 virtual HRESULT STDMETHODCALLTYPE put_Video( 210 OUTPUT_STATE newVal) = 0; 211 212 virtual HRESULT STDMETHODCALLTYPE get_Audio( 213 OUTPUT_STATE *pVal) = 0; 214 215 virtual HRESULT STDMETHODCALLTYPE put_Audio( 216 OUTPUT_STATE newVal) = 0; 217 218 }; 219 #ifdef __CRT_UUID_DECL 220 __CRT_UUID_DECL(IDirectShowStream, 0x7db01c96, 0xc0c3, 0x11d0, 0x8f,0xf1, 0x00,0xc0,0x4f,0xd9,0x18,0x9d) 221 #endif 222 #else 223 typedef struct IDirectShowStreamVtbl { 224 BEGIN_INTERFACE 225 226 /*** IUnknown methods ***/ 227 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 228 IDirectShowStream *This, 229 REFIID riid, 230 void **ppvObject); 231 232 ULONG (STDMETHODCALLTYPE *AddRef)( 233 IDirectShowStream *This); 234 235 ULONG (STDMETHODCALLTYPE *Release)( 236 IDirectShowStream *This); 237 238 /*** IDispatch methods ***/ 239 HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)( 240 IDirectShowStream *This, 241 UINT *pctinfo); 242 243 HRESULT (STDMETHODCALLTYPE *GetTypeInfo)( 244 IDirectShowStream *This, 245 UINT iTInfo, 246 LCID lcid, 247 ITypeInfo **ppTInfo); 248 249 HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)( 250 IDirectShowStream *This, 251 REFIID riid, 252 LPOLESTR *rgszNames, 253 UINT cNames, 254 LCID lcid, 255 DISPID *rgDispId); 256 257 HRESULT (STDMETHODCALLTYPE *Invoke)( 258 IDirectShowStream *This, 259 DISPID dispIdMember, 260 REFIID riid, 261 LCID lcid, 262 WORD wFlags, 263 DISPPARAMS *pDispParams, 264 VARIANT *pVarResult, 265 EXCEPINFO *pExcepInfo, 266 UINT *puArgErr); 267 268 /*** IDirectShowStream methods ***/ 269 HRESULT (STDMETHODCALLTYPE *get_FileName)( 270 IDirectShowStream *This, 271 BSTR *pVal); 272 273 HRESULT (STDMETHODCALLTYPE *put_FileName)( 274 IDirectShowStream *This, 275 BSTR newVal); 276 277 HRESULT (STDMETHODCALLTYPE *get_Video)( 278 IDirectShowStream *This, 279 OUTPUT_STATE *pVal); 280 281 HRESULT (STDMETHODCALLTYPE *put_Video)( 282 IDirectShowStream *This, 283 OUTPUT_STATE newVal); 284 285 HRESULT (STDMETHODCALLTYPE *get_Audio)( 286 IDirectShowStream *This, 287 OUTPUT_STATE *pVal); 288 289 HRESULT (STDMETHODCALLTYPE *put_Audio)( 290 IDirectShowStream *This, 291 OUTPUT_STATE newVal); 292 293 END_INTERFACE 294 } IDirectShowStreamVtbl; 295 296 interface IDirectShowStream { 297 CONST_VTBL IDirectShowStreamVtbl* lpVtbl; 298 }; 299 300 #ifdef COBJMACROS 301 #ifndef WIDL_C_INLINE_WRAPPERS 302 /*** IUnknown methods ***/ 303 #define IDirectShowStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 304 #define IDirectShowStream_AddRef(This) (This)->lpVtbl->AddRef(This) 305 #define IDirectShowStream_Release(This) (This)->lpVtbl->Release(This) 306 /*** IDispatch methods ***/ 307 #define IDirectShowStream_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo) 308 #define IDirectShowStream_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo) 309 #define IDirectShowStream_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) 310 #define IDirectShowStream_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) 311 /*** IDirectShowStream methods ***/ 312 #define IDirectShowStream_get_FileName(This,pVal) (This)->lpVtbl->get_FileName(This,pVal) 313 #define IDirectShowStream_put_FileName(This,newVal) (This)->lpVtbl->put_FileName(This,newVal) 314 #define IDirectShowStream_get_Video(This,pVal) (This)->lpVtbl->get_Video(This,pVal) 315 #define IDirectShowStream_put_Video(This,newVal) (This)->lpVtbl->put_Video(This,newVal) 316 #define IDirectShowStream_get_Audio(This,pVal) (This)->lpVtbl->get_Audio(This,pVal) 317 #define IDirectShowStream_put_Audio(This,newVal) (This)->lpVtbl->put_Audio(This,newVal) 318 #else 319 /*** IUnknown methods ***/ 320 static FORCEINLINE HRESULT IDirectShowStream_QueryInterface(IDirectShowStream* This,REFIID riid,void **ppvObject) { 321 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 322 } 323 static FORCEINLINE ULONG IDirectShowStream_AddRef(IDirectShowStream* This) { 324 return This->lpVtbl->AddRef(This); 325 } 326 static FORCEINLINE ULONG IDirectShowStream_Release(IDirectShowStream* This) { 327 return This->lpVtbl->Release(This); 328 } 329 /*** IDispatch methods ***/ 330 static FORCEINLINE HRESULT IDirectShowStream_GetTypeInfoCount(IDirectShowStream* This,UINT *pctinfo) { 331 return This->lpVtbl->GetTypeInfoCount(This,pctinfo); 332 } 333 static FORCEINLINE HRESULT IDirectShowStream_GetTypeInfo(IDirectShowStream* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) { 334 return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo); 335 } 336 static FORCEINLINE HRESULT IDirectShowStream_GetIDsOfNames(IDirectShowStream* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) { 337 return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId); 338 } 339 static FORCEINLINE HRESULT IDirectShowStream_Invoke(IDirectShowStream* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) { 340 return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr); 341 } 342 /*** IDirectShowStream methods ***/ 343 static FORCEINLINE HRESULT IDirectShowStream_get_FileName(IDirectShowStream* This,BSTR *pVal) { 344 return This->lpVtbl->get_FileName(This,pVal); 345 } 346 static FORCEINLINE HRESULT IDirectShowStream_put_FileName(IDirectShowStream* This,BSTR newVal) { 347 return This->lpVtbl->put_FileName(This,newVal); 348 } 349 static FORCEINLINE HRESULT IDirectShowStream_get_Video(IDirectShowStream* This,OUTPUT_STATE *pVal) { 350 return This->lpVtbl->get_Video(This,pVal); 351 } 352 static FORCEINLINE HRESULT IDirectShowStream_put_Video(IDirectShowStream* This,OUTPUT_STATE newVal) { 353 return This->lpVtbl->put_Video(This,newVal); 354 } 355 static FORCEINLINE HRESULT IDirectShowStream_get_Audio(IDirectShowStream* This,OUTPUT_STATE *pVal) { 356 return This->lpVtbl->get_Audio(This,pVal); 357 } 358 static FORCEINLINE HRESULT IDirectShowStream_put_Audio(IDirectShowStream* This,OUTPUT_STATE newVal) { 359 return This->lpVtbl->put_Audio(This,newVal); 360 } 361 #endif 362 #endif 363 364 #endif 365 366 367 #endif /* __IDirectShowStream_INTERFACE_DEFINED__ */ 368 369 /***************************************************************************** 370 * IAMMultiMediaStream interface 371 */ 372 #ifndef __IAMMultiMediaStream_INTERFACE_DEFINED__ 373 #define __IAMMultiMediaStream_INTERFACE_DEFINED__ 374 375 DEFINE_GUID(IID_IAMMultiMediaStream, 0xbebe595c, 0x9a6f, 0x11d0, 0x8f,0xde, 0x00,0xc0,0x4f,0xd9,0x18,0x9d); 376 #if defined(__cplusplus) && !defined(CINTERFACE) 377 MIDL_INTERFACE("bebe595c-9a6f-11d0-8fde-00c04fd9189d") 378 IAMMultiMediaStream : public IMultiMediaStream 379 { 380 virtual HRESULT STDMETHODCALLTYPE Initialize( 381 STREAM_TYPE StreamType, 382 DWORD dwFlags, 383 IGraphBuilder *pFilterGraph) = 0; 384 385 virtual HRESULT STDMETHODCALLTYPE GetFilterGraph( 386 IGraphBuilder **ppGraphBuilder) = 0; 387 388 virtual HRESULT STDMETHODCALLTYPE GetFilter( 389 IMediaStreamFilter **ppFilter) = 0; 390 391 virtual HRESULT STDMETHODCALLTYPE AddMediaStream( 392 IUnknown *pStreamObject, 393 const MSPID *PurposeId, 394 DWORD dwFlags, 395 IMediaStream **ppNewStream) = 0; 396 397 virtual HRESULT STDMETHODCALLTYPE OpenFile( 398 LPCWSTR pszFileName, 399 DWORD dwFlags) = 0; 400 401 virtual HRESULT STDMETHODCALLTYPE OpenMoniker( 402 IBindCtx *pCtx, 403 IMoniker *pMoniker, 404 DWORD dwFlags) = 0; 405 406 virtual HRESULT STDMETHODCALLTYPE Render( 407 DWORD dwFlags) = 0; 408 409 }; 410 #ifdef __CRT_UUID_DECL 411 __CRT_UUID_DECL(IAMMultiMediaStream, 0xbebe595c, 0x9a6f, 0x11d0, 0x8f,0xde, 0x00,0xc0,0x4f,0xd9,0x18,0x9d) 412 #endif 413 #else 414 typedef struct IAMMultiMediaStreamVtbl { 415 BEGIN_INTERFACE 416 417 /*** IUnknown methods ***/ 418 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 419 IAMMultiMediaStream *This, 420 REFIID riid, 421 void **ppvObject); 422 423 ULONG (STDMETHODCALLTYPE *AddRef)( 424 IAMMultiMediaStream *This); 425 426 ULONG (STDMETHODCALLTYPE *Release)( 427 IAMMultiMediaStream *This); 428 429 /*** IMultiMediaStream methods ***/ 430 HRESULT (STDMETHODCALLTYPE *GetInformation)( 431 IAMMultiMediaStream *This, 432 DWORD *pdwFlags, 433 STREAM_TYPE *pStreamType); 434 435 HRESULT (STDMETHODCALLTYPE *GetMediaStream)( 436 IAMMultiMediaStream *This, 437 REFMSPID idPurpose, 438 IMediaStream **ppMediaStream); 439 440 HRESULT (STDMETHODCALLTYPE *EnumMediaStreams)( 441 IAMMultiMediaStream *This, 442 LONG Index, 443 IMediaStream **ppMediaStream); 444 445 HRESULT (STDMETHODCALLTYPE *GetState)( 446 IAMMultiMediaStream *This, 447 STREAM_STATE *pCurrentState); 448 449 HRESULT (STDMETHODCALLTYPE *SetState)( 450 IAMMultiMediaStream *This, 451 STREAM_STATE NewState); 452 453 HRESULT (STDMETHODCALLTYPE *GetTime)( 454 IAMMultiMediaStream *This, 455 STREAM_TIME *pCurrentTime); 456 457 HRESULT (STDMETHODCALLTYPE *GetDuration)( 458 IAMMultiMediaStream *This, 459 STREAM_TIME *pDuration); 460 461 HRESULT (STDMETHODCALLTYPE *Seek)( 462 IAMMultiMediaStream *This, 463 STREAM_TIME SeekTime); 464 465 HRESULT (STDMETHODCALLTYPE *GetEndOfStreamEventHandle)( 466 IAMMultiMediaStream *This, 467 HANDLE *phEOS); 468 469 /*** IAMMultiMediaStream methods ***/ 470 HRESULT (STDMETHODCALLTYPE *Initialize)( 471 IAMMultiMediaStream *This, 472 STREAM_TYPE StreamType, 473 DWORD dwFlags, 474 IGraphBuilder *pFilterGraph); 475 476 HRESULT (STDMETHODCALLTYPE *GetFilterGraph)( 477 IAMMultiMediaStream *This, 478 IGraphBuilder **ppGraphBuilder); 479 480 HRESULT (STDMETHODCALLTYPE *GetFilter)( 481 IAMMultiMediaStream *This, 482 IMediaStreamFilter **ppFilter); 483 484 HRESULT (STDMETHODCALLTYPE *AddMediaStream)( 485 IAMMultiMediaStream *This, 486 IUnknown *pStreamObject, 487 const MSPID *PurposeId, 488 DWORD dwFlags, 489 IMediaStream **ppNewStream); 490 491 HRESULT (STDMETHODCALLTYPE *OpenFile)( 492 IAMMultiMediaStream *This, 493 LPCWSTR pszFileName, 494 DWORD dwFlags); 495 496 HRESULT (STDMETHODCALLTYPE *OpenMoniker)( 497 IAMMultiMediaStream *This, 498 IBindCtx *pCtx, 499 IMoniker *pMoniker, 500 DWORD dwFlags); 501 502 HRESULT (STDMETHODCALLTYPE *Render)( 503 IAMMultiMediaStream *This, 504 DWORD dwFlags); 505 506 END_INTERFACE 507 } IAMMultiMediaStreamVtbl; 508 509 interface IAMMultiMediaStream { 510 CONST_VTBL IAMMultiMediaStreamVtbl* lpVtbl; 511 }; 512 513 #ifdef COBJMACROS 514 #ifndef WIDL_C_INLINE_WRAPPERS 515 /*** IUnknown methods ***/ 516 #define IAMMultiMediaStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 517 #define IAMMultiMediaStream_AddRef(This) (This)->lpVtbl->AddRef(This) 518 #define IAMMultiMediaStream_Release(This) (This)->lpVtbl->Release(This) 519 /*** IMultiMediaStream methods ***/ 520 #define IAMMultiMediaStream_GetInformation(This,pdwFlags,pStreamType) (This)->lpVtbl->GetInformation(This,pdwFlags,pStreamType) 521 #define IAMMultiMediaStream_GetMediaStream(This,idPurpose,ppMediaStream) (This)->lpVtbl->GetMediaStream(This,idPurpose,ppMediaStream) 522 #define IAMMultiMediaStream_EnumMediaStreams(This,Index,ppMediaStream) (This)->lpVtbl->EnumMediaStreams(This,Index,ppMediaStream) 523 #define IAMMultiMediaStream_GetState(This,pCurrentState) (This)->lpVtbl->GetState(This,pCurrentState) 524 #define IAMMultiMediaStream_SetState(This,NewState) (This)->lpVtbl->SetState(This,NewState) 525 #define IAMMultiMediaStream_GetTime(This,pCurrentTime) (This)->lpVtbl->GetTime(This,pCurrentTime) 526 #define IAMMultiMediaStream_GetDuration(This,pDuration) (This)->lpVtbl->GetDuration(This,pDuration) 527 #define IAMMultiMediaStream_Seek(This,SeekTime) (This)->lpVtbl->Seek(This,SeekTime) 528 #define IAMMultiMediaStream_GetEndOfStreamEventHandle(This,phEOS) (This)->lpVtbl->GetEndOfStreamEventHandle(This,phEOS) 529 /*** IAMMultiMediaStream methods ***/ 530 #define IAMMultiMediaStream_Initialize(This,StreamType,dwFlags,pFilterGraph) (This)->lpVtbl->Initialize(This,StreamType,dwFlags,pFilterGraph) 531 #define IAMMultiMediaStream_GetFilterGraph(This,ppGraphBuilder) (This)->lpVtbl->GetFilterGraph(This,ppGraphBuilder) 532 #define IAMMultiMediaStream_GetFilter(This,ppFilter) (This)->lpVtbl->GetFilter(This,ppFilter) 533 #define IAMMultiMediaStream_AddMediaStream(This,pStreamObject,PurposeId,dwFlags,ppNewStream) (This)->lpVtbl->AddMediaStream(This,pStreamObject,PurposeId,dwFlags,ppNewStream) 534 #define IAMMultiMediaStream_OpenFile(This,pszFileName,dwFlags) (This)->lpVtbl->OpenFile(This,pszFileName,dwFlags) 535 #define IAMMultiMediaStream_OpenMoniker(This,pCtx,pMoniker,dwFlags) (This)->lpVtbl->OpenMoniker(This,pCtx,pMoniker,dwFlags) 536 #define IAMMultiMediaStream_Render(This,dwFlags) (This)->lpVtbl->Render(This,dwFlags) 537 #else 538 /*** IUnknown methods ***/ 539 static FORCEINLINE HRESULT IAMMultiMediaStream_QueryInterface(IAMMultiMediaStream* This,REFIID riid,void **ppvObject) { 540 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 541 } 542 static FORCEINLINE ULONG IAMMultiMediaStream_AddRef(IAMMultiMediaStream* This) { 543 return This->lpVtbl->AddRef(This); 544 } 545 static FORCEINLINE ULONG IAMMultiMediaStream_Release(IAMMultiMediaStream* This) { 546 return This->lpVtbl->Release(This); 547 } 548 /*** IMultiMediaStream methods ***/ 549 static FORCEINLINE HRESULT IAMMultiMediaStream_GetInformation(IAMMultiMediaStream* This,DWORD *pdwFlags,STREAM_TYPE *pStreamType) { 550 return This->lpVtbl->GetInformation(This,pdwFlags,pStreamType); 551 } 552 static FORCEINLINE HRESULT IAMMultiMediaStream_GetMediaStream(IAMMultiMediaStream* This,REFMSPID idPurpose,IMediaStream **ppMediaStream) { 553 return This->lpVtbl->GetMediaStream(This,idPurpose,ppMediaStream); 554 } 555 static FORCEINLINE HRESULT IAMMultiMediaStream_EnumMediaStreams(IAMMultiMediaStream* This,LONG Index,IMediaStream **ppMediaStream) { 556 return This->lpVtbl->EnumMediaStreams(This,Index,ppMediaStream); 557 } 558 static FORCEINLINE HRESULT IAMMultiMediaStream_GetState(IAMMultiMediaStream* This,STREAM_STATE *pCurrentState) { 559 return This->lpVtbl->GetState(This,pCurrentState); 560 } 561 static FORCEINLINE HRESULT IAMMultiMediaStream_SetState(IAMMultiMediaStream* This,STREAM_STATE NewState) { 562 return This->lpVtbl->SetState(This,NewState); 563 } 564 static FORCEINLINE HRESULT IAMMultiMediaStream_GetTime(IAMMultiMediaStream* This,STREAM_TIME *pCurrentTime) { 565 return This->lpVtbl->GetTime(This,pCurrentTime); 566 } 567 static FORCEINLINE HRESULT IAMMultiMediaStream_GetDuration(IAMMultiMediaStream* This,STREAM_TIME *pDuration) { 568 return This->lpVtbl->GetDuration(This,pDuration); 569 } 570 static FORCEINLINE HRESULT IAMMultiMediaStream_Seek(IAMMultiMediaStream* This,STREAM_TIME SeekTime) { 571 return This->lpVtbl->Seek(This,SeekTime); 572 } 573 static FORCEINLINE HRESULT IAMMultiMediaStream_GetEndOfStreamEventHandle(IAMMultiMediaStream* This,HANDLE *phEOS) { 574 return This->lpVtbl->GetEndOfStreamEventHandle(This,phEOS); 575 } 576 /*** IAMMultiMediaStream methods ***/ 577 static FORCEINLINE HRESULT IAMMultiMediaStream_Initialize(IAMMultiMediaStream* This,STREAM_TYPE StreamType,DWORD dwFlags,IGraphBuilder *pFilterGraph) { 578 return This->lpVtbl->Initialize(This,StreamType,dwFlags,pFilterGraph); 579 } 580 static FORCEINLINE HRESULT IAMMultiMediaStream_GetFilterGraph(IAMMultiMediaStream* This,IGraphBuilder **ppGraphBuilder) { 581 return This->lpVtbl->GetFilterGraph(This,ppGraphBuilder); 582 } 583 static FORCEINLINE HRESULT IAMMultiMediaStream_GetFilter(IAMMultiMediaStream* This,IMediaStreamFilter **ppFilter) { 584 return This->lpVtbl->GetFilter(This,ppFilter); 585 } 586 static FORCEINLINE HRESULT IAMMultiMediaStream_AddMediaStream(IAMMultiMediaStream* This,IUnknown *pStreamObject,const MSPID *PurposeId,DWORD dwFlags,IMediaStream **ppNewStream) { 587 return This->lpVtbl->AddMediaStream(This,pStreamObject,PurposeId,dwFlags,ppNewStream); 588 } 589 static FORCEINLINE HRESULT IAMMultiMediaStream_OpenFile(IAMMultiMediaStream* This,LPCWSTR pszFileName,DWORD dwFlags) { 590 return This->lpVtbl->OpenFile(This,pszFileName,dwFlags); 591 } 592 static FORCEINLINE HRESULT IAMMultiMediaStream_OpenMoniker(IAMMultiMediaStream* This,IBindCtx *pCtx,IMoniker *pMoniker,DWORD dwFlags) { 593 return This->lpVtbl->OpenMoniker(This,pCtx,pMoniker,dwFlags); 594 } 595 static FORCEINLINE HRESULT IAMMultiMediaStream_Render(IAMMultiMediaStream* This,DWORD dwFlags) { 596 return This->lpVtbl->Render(This,dwFlags); 597 } 598 #endif 599 #endif 600 601 #endif 602 603 604 #endif /* __IAMMultiMediaStream_INTERFACE_DEFINED__ */ 605 606 /***************************************************************************** 607 * IAMMediaStream interface 608 */ 609 #ifndef __IAMMediaStream_INTERFACE_DEFINED__ 610 #define __IAMMediaStream_INTERFACE_DEFINED__ 611 612 DEFINE_GUID(IID_IAMMediaStream, 0xbebe595d, 0x9a6f, 0x11d0, 0x8f,0xde, 0x00,0xc0,0x4f,0xd9,0x18,0x9d); 613 #if defined(__cplusplus) && !defined(CINTERFACE) 614 MIDL_INTERFACE("bebe595d-9a6f-11d0-8fde-00c04fd9189d") 615 IAMMediaStream : public IMediaStream 616 { 617 virtual HRESULT STDMETHODCALLTYPE Initialize( 618 IUnknown *pSourceObject, 619 DWORD dwFlags, 620 REFMSPID PurposeId, 621 const STREAM_TYPE StreamType) = 0; 622 623 virtual HRESULT STDMETHODCALLTYPE SetState( 624 FILTER_STATE State) = 0; 625 626 virtual HRESULT STDMETHODCALLTYPE JoinAMMultiMediaStream( 627 IAMMultiMediaStream *pAMMultiMediaStream) = 0; 628 629 virtual HRESULT STDMETHODCALLTYPE JoinFilter( 630 IMediaStreamFilter *pMediaStreamFilter) = 0; 631 632 virtual HRESULT STDMETHODCALLTYPE JoinFilterGraph( 633 IFilterGraph *pFilterGraph) = 0; 634 635 }; 636 #ifdef __CRT_UUID_DECL 637 __CRT_UUID_DECL(IAMMediaStream, 0xbebe595d, 0x9a6f, 0x11d0, 0x8f,0xde, 0x00,0xc0,0x4f,0xd9,0x18,0x9d) 638 #endif 639 #else 640 typedef struct IAMMediaStreamVtbl { 641 BEGIN_INTERFACE 642 643 /*** IUnknown methods ***/ 644 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 645 IAMMediaStream *This, 646 REFIID riid, 647 void **ppvObject); 648 649 ULONG (STDMETHODCALLTYPE *AddRef)( 650 IAMMediaStream *This); 651 652 ULONG (STDMETHODCALLTYPE *Release)( 653 IAMMediaStream *This); 654 655 /*** IMediaStream methods ***/ 656 HRESULT (STDMETHODCALLTYPE *GetMultiMediaStream)( 657 IAMMediaStream *This, 658 IMultiMediaStream **ppMultiMediaStream); 659 660 HRESULT (STDMETHODCALLTYPE *GetInformation)( 661 IAMMediaStream *This, 662 MSPID *pPurposeId, 663 STREAM_TYPE *pType); 664 665 HRESULT (STDMETHODCALLTYPE *SetSameFormat)( 666 IAMMediaStream *This, 667 IMediaStream *pStreamThatHasDesiredFormat, 668 DWORD dwFlags); 669 670 HRESULT (STDMETHODCALLTYPE *AllocateSample)( 671 IAMMediaStream *This, 672 DWORD dwFlags, 673 IStreamSample **ppSample); 674 675 HRESULT (STDMETHODCALLTYPE *CreateSharedSample)( 676 IAMMediaStream *This, 677 IStreamSample *pExistingSample, 678 DWORD dwFlags, 679 IStreamSample **ppNewSample); 680 681 HRESULT (STDMETHODCALLTYPE *SendEndOfStream)( 682 IAMMediaStream *This, 683 DWORD dwFlags); 684 685 /*** IAMMediaStream methods ***/ 686 HRESULT (STDMETHODCALLTYPE *Initialize)( 687 IAMMediaStream *This, 688 IUnknown *pSourceObject, 689 DWORD dwFlags, 690 REFMSPID PurposeId, 691 const STREAM_TYPE StreamType); 692 693 HRESULT (STDMETHODCALLTYPE *SetState)( 694 IAMMediaStream *This, 695 FILTER_STATE State); 696 697 HRESULT (STDMETHODCALLTYPE *JoinAMMultiMediaStream)( 698 IAMMediaStream *This, 699 IAMMultiMediaStream *pAMMultiMediaStream); 700 701 HRESULT (STDMETHODCALLTYPE *JoinFilter)( 702 IAMMediaStream *This, 703 IMediaStreamFilter *pMediaStreamFilter); 704 705 HRESULT (STDMETHODCALLTYPE *JoinFilterGraph)( 706 IAMMediaStream *This, 707 IFilterGraph *pFilterGraph); 708 709 END_INTERFACE 710 } IAMMediaStreamVtbl; 711 712 interface IAMMediaStream { 713 CONST_VTBL IAMMediaStreamVtbl* lpVtbl; 714 }; 715 716 #ifdef COBJMACROS 717 #ifndef WIDL_C_INLINE_WRAPPERS 718 /*** IUnknown methods ***/ 719 #define IAMMediaStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 720 #define IAMMediaStream_AddRef(This) (This)->lpVtbl->AddRef(This) 721 #define IAMMediaStream_Release(This) (This)->lpVtbl->Release(This) 722 /*** IMediaStream methods ***/ 723 #define IAMMediaStream_GetMultiMediaStream(This,ppMultiMediaStream) (This)->lpVtbl->GetMultiMediaStream(This,ppMultiMediaStream) 724 #define IAMMediaStream_GetInformation(This,pPurposeId,pType) (This)->lpVtbl->GetInformation(This,pPurposeId,pType) 725 #define IAMMediaStream_SetSameFormat(This,pStreamThatHasDesiredFormat,dwFlags) (This)->lpVtbl->SetSameFormat(This,pStreamThatHasDesiredFormat,dwFlags) 726 #define IAMMediaStream_AllocateSample(This,dwFlags,ppSample) (This)->lpVtbl->AllocateSample(This,dwFlags,ppSample) 727 #define IAMMediaStream_CreateSharedSample(This,pExistingSample,dwFlags,ppNewSample) (This)->lpVtbl->CreateSharedSample(This,pExistingSample,dwFlags,ppNewSample) 728 #define IAMMediaStream_SendEndOfStream(This,dwFlags) (This)->lpVtbl->SendEndOfStream(This,dwFlags) 729 /*** IAMMediaStream methods ***/ 730 #define IAMMediaStream_Initialize(This,pSourceObject,dwFlags,PurposeId,StreamType) (This)->lpVtbl->Initialize(This,pSourceObject,dwFlags,PurposeId,StreamType) 731 #define IAMMediaStream_SetState(This,State) (This)->lpVtbl->SetState(This,State) 732 #define IAMMediaStream_JoinAMMultiMediaStream(This,pAMMultiMediaStream) (This)->lpVtbl->JoinAMMultiMediaStream(This,pAMMultiMediaStream) 733 #define IAMMediaStream_JoinFilter(This,pMediaStreamFilter) (This)->lpVtbl->JoinFilter(This,pMediaStreamFilter) 734 #define IAMMediaStream_JoinFilterGraph(This,pFilterGraph) (This)->lpVtbl->JoinFilterGraph(This,pFilterGraph) 735 #else 736 /*** IUnknown methods ***/ 737 static FORCEINLINE HRESULT IAMMediaStream_QueryInterface(IAMMediaStream* This,REFIID riid,void **ppvObject) { 738 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 739 } 740 static FORCEINLINE ULONG IAMMediaStream_AddRef(IAMMediaStream* This) { 741 return This->lpVtbl->AddRef(This); 742 } 743 static FORCEINLINE ULONG IAMMediaStream_Release(IAMMediaStream* This) { 744 return This->lpVtbl->Release(This); 745 } 746 /*** IMediaStream methods ***/ 747 static FORCEINLINE HRESULT IAMMediaStream_GetMultiMediaStream(IAMMediaStream* This,IMultiMediaStream **ppMultiMediaStream) { 748 return This->lpVtbl->GetMultiMediaStream(This,ppMultiMediaStream); 749 } 750 static FORCEINLINE HRESULT IAMMediaStream_GetInformation(IAMMediaStream* This,MSPID *pPurposeId,STREAM_TYPE *pType) { 751 return This->lpVtbl->GetInformation(This,pPurposeId,pType); 752 } 753 static FORCEINLINE HRESULT IAMMediaStream_SetSameFormat(IAMMediaStream* This,IMediaStream *pStreamThatHasDesiredFormat,DWORD dwFlags) { 754 return This->lpVtbl->SetSameFormat(This,pStreamThatHasDesiredFormat,dwFlags); 755 } 756 static FORCEINLINE HRESULT IAMMediaStream_AllocateSample(IAMMediaStream* This,DWORD dwFlags,IStreamSample **ppSample) { 757 return This->lpVtbl->AllocateSample(This,dwFlags,ppSample); 758 } 759 static FORCEINLINE HRESULT IAMMediaStream_CreateSharedSample(IAMMediaStream* This,IStreamSample *pExistingSample,DWORD dwFlags,IStreamSample **ppNewSample) { 760 return This->lpVtbl->CreateSharedSample(This,pExistingSample,dwFlags,ppNewSample); 761 } 762 static FORCEINLINE HRESULT IAMMediaStream_SendEndOfStream(IAMMediaStream* This,DWORD dwFlags) { 763 return This->lpVtbl->SendEndOfStream(This,dwFlags); 764 } 765 /*** IAMMediaStream methods ***/ 766 static FORCEINLINE HRESULT IAMMediaStream_Initialize(IAMMediaStream* This,IUnknown *pSourceObject,DWORD dwFlags,REFMSPID PurposeId,const STREAM_TYPE StreamType) { 767 return This->lpVtbl->Initialize(This,pSourceObject,dwFlags,PurposeId,StreamType); 768 } 769 static FORCEINLINE HRESULT IAMMediaStream_SetState(IAMMediaStream* This,FILTER_STATE State) { 770 return This->lpVtbl->SetState(This,State); 771 } 772 static FORCEINLINE HRESULT IAMMediaStream_JoinAMMultiMediaStream(IAMMediaStream* This,IAMMultiMediaStream *pAMMultiMediaStream) { 773 return This->lpVtbl->JoinAMMultiMediaStream(This,pAMMultiMediaStream); 774 } 775 static FORCEINLINE HRESULT IAMMediaStream_JoinFilter(IAMMediaStream* This,IMediaStreamFilter *pMediaStreamFilter) { 776 return This->lpVtbl->JoinFilter(This,pMediaStreamFilter); 777 } 778 static FORCEINLINE HRESULT IAMMediaStream_JoinFilterGraph(IAMMediaStream* This,IFilterGraph *pFilterGraph) { 779 return This->lpVtbl->JoinFilterGraph(This,pFilterGraph); 780 } 781 #endif 782 #endif 783 784 #endif 785 786 787 #endif /* __IAMMediaStream_INTERFACE_DEFINED__ */ 788 789 /***************************************************************************** 790 * IMediaStreamFilter interface 791 */ 792 #ifndef __IMediaStreamFilter_INTERFACE_DEFINED__ 793 #define __IMediaStreamFilter_INTERFACE_DEFINED__ 794 795 DEFINE_GUID(IID_IMediaStreamFilter, 0xbebe595e, 0x9a6f, 0x11d0, 0x8f,0xde, 0x00,0xc0,0x4f,0xd9,0x18,0x9d); 796 #if defined(__cplusplus) && !defined(CINTERFACE) 797 MIDL_INTERFACE("bebe595e-9a6f-11d0-8fde-00c04fd9189d") 798 IMediaStreamFilter : public IBaseFilter 799 { 800 virtual HRESULT STDMETHODCALLTYPE AddMediaStream( 801 IAMMediaStream *pAMMediaStream) = 0; 802 803 virtual HRESULT STDMETHODCALLTYPE GetMediaStream( 804 REFMSPID idPurpose, 805 IMediaStream **ppMediaStream) = 0; 806 807 virtual HRESULT STDMETHODCALLTYPE EnumMediaStreams( 808 LONG Index, 809 IMediaStream **ppMediaStream) = 0; 810 811 virtual HRESULT STDMETHODCALLTYPE SupportSeeking( 812 WINBOOL bRenderer) = 0; 813 814 virtual HRESULT STDMETHODCALLTYPE ReferenceTimeToStreamTime( 815 REFERENCE_TIME *pTime) = 0; 816 817 virtual HRESULT STDMETHODCALLTYPE GetCurrentStreamTime( 818 REFERENCE_TIME *pCurrentStreamTime) = 0; 819 820 virtual HRESULT STDMETHODCALLTYPE WaitUntil( 821 REFERENCE_TIME WaitStreamTime) = 0; 822 823 virtual HRESULT STDMETHODCALLTYPE Flush( 824 WINBOOL bCancelEOS) = 0; 825 826 virtual HRESULT STDMETHODCALLTYPE EndOfStream( 827 ) = 0; 828 829 }; 830 #ifdef __CRT_UUID_DECL 831 __CRT_UUID_DECL(IMediaStreamFilter, 0xbebe595e, 0x9a6f, 0x11d0, 0x8f,0xde, 0x00,0xc0,0x4f,0xd9,0x18,0x9d) 832 #endif 833 #else 834 typedef struct IMediaStreamFilterVtbl { 835 BEGIN_INTERFACE 836 837 /*** IUnknown methods ***/ 838 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 839 IMediaStreamFilter *This, 840 REFIID riid, 841 void **ppvObject); 842 843 ULONG (STDMETHODCALLTYPE *AddRef)( 844 IMediaStreamFilter *This); 845 846 ULONG (STDMETHODCALLTYPE *Release)( 847 IMediaStreamFilter *This); 848 849 /*** IPersist methods ***/ 850 HRESULT (STDMETHODCALLTYPE *GetClassID)( 851 IMediaStreamFilter *This, 852 CLSID *pClassID); 853 854 /*** IMediaFilter methods ***/ 855 HRESULT (STDMETHODCALLTYPE *Stop)( 856 IMediaStreamFilter *This); 857 858 HRESULT (STDMETHODCALLTYPE *Pause)( 859 IMediaStreamFilter *This); 860 861 HRESULT (STDMETHODCALLTYPE *Run)( 862 IMediaStreamFilter *This, 863 REFERENCE_TIME tStart); 864 865 HRESULT (STDMETHODCALLTYPE *GetState)( 866 IMediaStreamFilter *This, 867 DWORD dwMilliSecsTimeout, 868 FILTER_STATE *State); 869 870 HRESULT (STDMETHODCALLTYPE *SetSyncSource)( 871 IMediaStreamFilter *This, 872 IReferenceClock *pClock); 873 874 HRESULT (STDMETHODCALLTYPE *GetSyncSource)( 875 IMediaStreamFilter *This, 876 IReferenceClock **pClock); 877 878 /*** IBaseFilter methods ***/ 879 HRESULT (STDMETHODCALLTYPE *EnumPins)( 880 IMediaStreamFilter *This, 881 IEnumPins **ppEnum); 882 883 HRESULT (STDMETHODCALLTYPE *FindPin)( 884 IMediaStreamFilter *This, 885 LPCWSTR Id, 886 IPin **ppPin); 887 888 HRESULT (STDMETHODCALLTYPE *QueryFilterInfo)( 889 IMediaStreamFilter *This, 890 FILTER_INFO *pInfo); 891 892 HRESULT (STDMETHODCALLTYPE *JoinFilterGraph)( 893 IMediaStreamFilter *This, 894 IFilterGraph *pGraph, 895 LPCWSTR pName); 896 897 HRESULT (STDMETHODCALLTYPE *QueryVendorInfo)( 898 IMediaStreamFilter *This, 899 LPWSTR *pVendorInfo); 900 901 /*** IMediaStreamFilter methods ***/ 902 HRESULT (STDMETHODCALLTYPE *AddMediaStream)( 903 IMediaStreamFilter *This, 904 IAMMediaStream *pAMMediaStream); 905 906 HRESULT (STDMETHODCALLTYPE *GetMediaStream)( 907 IMediaStreamFilter *This, 908 REFMSPID idPurpose, 909 IMediaStream **ppMediaStream); 910 911 HRESULT (STDMETHODCALLTYPE *EnumMediaStreams)( 912 IMediaStreamFilter *This, 913 LONG Index, 914 IMediaStream **ppMediaStream); 915 916 HRESULT (STDMETHODCALLTYPE *SupportSeeking)( 917 IMediaStreamFilter *This, 918 WINBOOL bRenderer); 919 920 HRESULT (STDMETHODCALLTYPE *ReferenceTimeToStreamTime)( 921 IMediaStreamFilter *This, 922 REFERENCE_TIME *pTime); 923 924 HRESULT (STDMETHODCALLTYPE *GetCurrentStreamTime)( 925 IMediaStreamFilter *This, 926 REFERENCE_TIME *pCurrentStreamTime); 927 928 HRESULT (STDMETHODCALLTYPE *WaitUntil)( 929 IMediaStreamFilter *This, 930 REFERENCE_TIME WaitStreamTime); 931 932 HRESULT (STDMETHODCALLTYPE *Flush)( 933 IMediaStreamFilter *This, 934 WINBOOL bCancelEOS); 935 936 HRESULT (STDMETHODCALLTYPE *EndOfStream)( 937 IMediaStreamFilter *This); 938 939 END_INTERFACE 940 } IMediaStreamFilterVtbl; 941 942 interface IMediaStreamFilter { 943 CONST_VTBL IMediaStreamFilterVtbl* lpVtbl; 944 }; 945 946 #ifdef COBJMACROS 947 #ifndef WIDL_C_INLINE_WRAPPERS 948 /*** IUnknown methods ***/ 949 #define IMediaStreamFilter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 950 #define IMediaStreamFilter_AddRef(This) (This)->lpVtbl->AddRef(This) 951 #define IMediaStreamFilter_Release(This) (This)->lpVtbl->Release(This) 952 /*** IPersist methods ***/ 953 #define IMediaStreamFilter_GetClassID(This,pClassID) (This)->lpVtbl->GetClassID(This,pClassID) 954 /*** IMediaFilter methods ***/ 955 #define IMediaStreamFilter_Stop(This) (This)->lpVtbl->Stop(This) 956 #define IMediaStreamFilter_Pause(This) (This)->lpVtbl->Pause(This) 957 #define IMediaStreamFilter_Run(This,tStart) (This)->lpVtbl->Run(This,tStart) 958 #define IMediaStreamFilter_GetState(This,dwMilliSecsTimeout,State) (This)->lpVtbl->GetState(This,dwMilliSecsTimeout,State) 959 #define IMediaStreamFilter_SetSyncSource(This,pClock) (This)->lpVtbl->SetSyncSource(This,pClock) 960 #define IMediaStreamFilter_GetSyncSource(This,pClock) (This)->lpVtbl->GetSyncSource(This,pClock) 961 /*** IBaseFilter methods ***/ 962 #define IMediaStreamFilter_EnumPins(This,ppEnum) (This)->lpVtbl->EnumPins(This,ppEnum) 963 #define IMediaStreamFilter_FindPin(This,Id,ppPin) (This)->lpVtbl->FindPin(This,Id,ppPin) 964 #define IMediaStreamFilter_QueryFilterInfo(This,pInfo) (This)->lpVtbl->QueryFilterInfo(This,pInfo) 965 #define IMediaStreamFilter_JoinFilterGraph(This,pGraph,pName) (This)->lpVtbl->JoinFilterGraph(This,pGraph,pName) 966 #define IMediaStreamFilter_QueryVendorInfo(This,pVendorInfo) (This)->lpVtbl->QueryVendorInfo(This,pVendorInfo) 967 /*** IMediaStreamFilter methods ***/ 968 #define IMediaStreamFilter_AddMediaStream(This,pAMMediaStream) (This)->lpVtbl->AddMediaStream(This,pAMMediaStream) 969 #define IMediaStreamFilter_GetMediaStream(This,idPurpose,ppMediaStream) (This)->lpVtbl->GetMediaStream(This,idPurpose,ppMediaStream) 970 #define IMediaStreamFilter_EnumMediaStreams(This,Index,ppMediaStream) (This)->lpVtbl->EnumMediaStreams(This,Index,ppMediaStream) 971 #define IMediaStreamFilter_SupportSeeking(This,bRenderer) (This)->lpVtbl->SupportSeeking(This,bRenderer) 972 #define IMediaStreamFilter_ReferenceTimeToStreamTime(This,pTime) (This)->lpVtbl->ReferenceTimeToStreamTime(This,pTime) 973 #define IMediaStreamFilter_GetCurrentStreamTime(This,pCurrentStreamTime) (This)->lpVtbl->GetCurrentStreamTime(This,pCurrentStreamTime) 974 #define IMediaStreamFilter_WaitUntil(This,WaitStreamTime) (This)->lpVtbl->WaitUntil(This,WaitStreamTime) 975 #define IMediaStreamFilter_Flush(This,bCancelEOS) (This)->lpVtbl->Flush(This,bCancelEOS) 976 #define IMediaStreamFilter_EndOfStream(This) (This)->lpVtbl->EndOfStream(This) 977 #else 978 /*** IUnknown methods ***/ 979 static FORCEINLINE HRESULT IMediaStreamFilter_QueryInterface(IMediaStreamFilter* This,REFIID riid,void **ppvObject) { 980 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 981 } 982 static FORCEINLINE ULONG IMediaStreamFilter_AddRef(IMediaStreamFilter* This) { 983 return This->lpVtbl->AddRef(This); 984 } 985 static FORCEINLINE ULONG IMediaStreamFilter_Release(IMediaStreamFilter* This) { 986 return This->lpVtbl->Release(This); 987 } 988 /*** IPersist methods ***/ 989 static FORCEINLINE HRESULT IMediaStreamFilter_GetClassID(IMediaStreamFilter* This,CLSID *pClassID) { 990 return This->lpVtbl->GetClassID(This,pClassID); 991 } 992 /*** IMediaFilter methods ***/ 993 static FORCEINLINE HRESULT IMediaStreamFilter_Stop(IMediaStreamFilter* This) { 994 return This->lpVtbl->Stop(This); 995 } 996 static FORCEINLINE HRESULT IMediaStreamFilter_Pause(IMediaStreamFilter* This) { 997 return This->lpVtbl->Pause(This); 998 } 999 static FORCEINLINE HRESULT IMediaStreamFilter_Run(IMediaStreamFilter* This,REFERENCE_TIME tStart) { 1000 return This->lpVtbl->Run(This,tStart); 1001 } 1002 static FORCEINLINE HRESULT IMediaStreamFilter_GetState(IMediaStreamFilter* This,DWORD dwMilliSecsTimeout,FILTER_STATE *State) { 1003 return This->lpVtbl->GetState(This,dwMilliSecsTimeout,State); 1004 } 1005 static FORCEINLINE HRESULT IMediaStreamFilter_SetSyncSource(IMediaStreamFilter* This,IReferenceClock *pClock) { 1006 return This->lpVtbl->SetSyncSource(This,pClock); 1007 } 1008 static FORCEINLINE HRESULT IMediaStreamFilter_GetSyncSource(IMediaStreamFilter* This,IReferenceClock **pClock) { 1009 return This->lpVtbl->GetSyncSource(This,pClock); 1010 } 1011 /*** IBaseFilter methods ***/ 1012 static FORCEINLINE HRESULT IMediaStreamFilter_EnumPins(IMediaStreamFilter* This,IEnumPins **ppEnum) { 1013 return This->lpVtbl->EnumPins(This,ppEnum); 1014 } 1015 static FORCEINLINE HRESULT IMediaStreamFilter_FindPin(IMediaStreamFilter* This,LPCWSTR Id,IPin **ppPin) { 1016 return This->lpVtbl->FindPin(This,Id,ppPin); 1017 } 1018 static FORCEINLINE HRESULT IMediaStreamFilter_QueryFilterInfo(IMediaStreamFilter* This,FILTER_INFO *pInfo) { 1019 return This->lpVtbl->QueryFilterInfo(This,pInfo); 1020 } 1021 static FORCEINLINE HRESULT IMediaStreamFilter_JoinFilterGraph(IMediaStreamFilter* This,IFilterGraph *pGraph,LPCWSTR pName) { 1022 return This->lpVtbl->JoinFilterGraph(This,pGraph,pName); 1023 } 1024 static FORCEINLINE HRESULT IMediaStreamFilter_QueryVendorInfo(IMediaStreamFilter* This,LPWSTR *pVendorInfo) { 1025 return This->lpVtbl->QueryVendorInfo(This,pVendorInfo); 1026 } 1027 /*** IMediaStreamFilter methods ***/ 1028 static FORCEINLINE HRESULT IMediaStreamFilter_AddMediaStream(IMediaStreamFilter* This,IAMMediaStream *pAMMediaStream) { 1029 return This->lpVtbl->AddMediaStream(This,pAMMediaStream); 1030 } 1031 static FORCEINLINE HRESULT IMediaStreamFilter_GetMediaStream(IMediaStreamFilter* This,REFMSPID idPurpose,IMediaStream **ppMediaStream) { 1032 return This->lpVtbl->GetMediaStream(This,idPurpose,ppMediaStream); 1033 } 1034 static FORCEINLINE HRESULT IMediaStreamFilter_EnumMediaStreams(IMediaStreamFilter* This,LONG Index,IMediaStream **ppMediaStream) { 1035 return This->lpVtbl->EnumMediaStreams(This,Index,ppMediaStream); 1036 } 1037 static FORCEINLINE HRESULT IMediaStreamFilter_SupportSeeking(IMediaStreamFilter* This,WINBOOL bRenderer) { 1038 return This->lpVtbl->SupportSeeking(This,bRenderer); 1039 } 1040 static FORCEINLINE HRESULT IMediaStreamFilter_ReferenceTimeToStreamTime(IMediaStreamFilter* This,REFERENCE_TIME *pTime) { 1041 return This->lpVtbl->ReferenceTimeToStreamTime(This,pTime); 1042 } 1043 static FORCEINLINE HRESULT IMediaStreamFilter_GetCurrentStreamTime(IMediaStreamFilter* This,REFERENCE_TIME *pCurrentStreamTime) { 1044 return This->lpVtbl->GetCurrentStreamTime(This,pCurrentStreamTime); 1045 } 1046 static FORCEINLINE HRESULT IMediaStreamFilter_WaitUntil(IMediaStreamFilter* This,REFERENCE_TIME WaitStreamTime) { 1047 return This->lpVtbl->WaitUntil(This,WaitStreamTime); 1048 } 1049 static FORCEINLINE HRESULT IMediaStreamFilter_Flush(IMediaStreamFilter* This,WINBOOL bCancelEOS) { 1050 return This->lpVtbl->Flush(This,bCancelEOS); 1051 } 1052 static FORCEINLINE HRESULT IMediaStreamFilter_EndOfStream(IMediaStreamFilter* This) { 1053 return This->lpVtbl->EndOfStream(This); 1054 } 1055 #endif 1056 #endif 1057 1058 #endif 1059 1060 1061 #endif /* __IMediaStreamFilter_INTERFACE_DEFINED__ */ 1062 1063 /***************************************************************************** 1064 * IDirectDrawMediaSampleAllocator interface 1065 */ 1066 #ifndef __IDirectDrawMediaSampleAllocator_INTERFACE_DEFINED__ 1067 #define __IDirectDrawMediaSampleAllocator_INTERFACE_DEFINED__ 1068 1069 DEFINE_GUID(IID_IDirectDrawMediaSampleAllocator, 0xab6b4afc, 0xf6e4, 0x11d0, 0x90,0x0d, 0x00,0xc0,0x4f,0xd9,0x18,0x9d); 1070 #if defined(__cplusplus) && !defined(CINTERFACE) 1071 MIDL_INTERFACE("ab6b4afc-f6e4-11d0-900d-00c04fd9189d") 1072 IDirectDrawMediaSampleAllocator : public IUnknown 1073 { 1074 virtual HRESULT STDMETHODCALLTYPE GetDirectDraw( 1075 IDirectDraw **ppDirectDraw) = 0; 1076 1077 }; 1078 #ifdef __CRT_UUID_DECL 1079 __CRT_UUID_DECL(IDirectDrawMediaSampleAllocator, 0xab6b4afc, 0xf6e4, 0x11d0, 0x90,0x0d, 0x00,0xc0,0x4f,0xd9,0x18,0x9d) 1080 #endif 1081 #else 1082 typedef struct IDirectDrawMediaSampleAllocatorVtbl { 1083 BEGIN_INTERFACE 1084 1085 /*** IUnknown methods ***/ 1086 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 1087 IDirectDrawMediaSampleAllocator *This, 1088 REFIID riid, 1089 void **ppvObject); 1090 1091 ULONG (STDMETHODCALLTYPE *AddRef)( 1092 IDirectDrawMediaSampleAllocator *This); 1093 1094 ULONG (STDMETHODCALLTYPE *Release)( 1095 IDirectDrawMediaSampleAllocator *This); 1096 1097 /*** IDirectDrawMediaSampleAllocator methods ***/ 1098 HRESULT (STDMETHODCALLTYPE *GetDirectDraw)( 1099 IDirectDrawMediaSampleAllocator *This, 1100 IDirectDraw **ppDirectDraw); 1101 1102 END_INTERFACE 1103 } IDirectDrawMediaSampleAllocatorVtbl; 1104 1105 interface IDirectDrawMediaSampleAllocator { 1106 CONST_VTBL IDirectDrawMediaSampleAllocatorVtbl* lpVtbl; 1107 }; 1108 1109 #ifdef COBJMACROS 1110 #ifndef WIDL_C_INLINE_WRAPPERS 1111 /*** IUnknown methods ***/ 1112 #define IDirectDrawMediaSampleAllocator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 1113 #define IDirectDrawMediaSampleAllocator_AddRef(This) (This)->lpVtbl->AddRef(This) 1114 #define IDirectDrawMediaSampleAllocator_Release(This) (This)->lpVtbl->Release(This) 1115 /*** IDirectDrawMediaSampleAllocator methods ***/ 1116 #define IDirectDrawMediaSampleAllocator_GetDirectDraw(This,ppDirectDraw) (This)->lpVtbl->GetDirectDraw(This,ppDirectDraw) 1117 #else 1118 /*** IUnknown methods ***/ 1119 static FORCEINLINE HRESULT IDirectDrawMediaSampleAllocator_QueryInterface(IDirectDrawMediaSampleAllocator* This,REFIID riid,void **ppvObject) { 1120 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 1121 } 1122 static FORCEINLINE ULONG IDirectDrawMediaSampleAllocator_AddRef(IDirectDrawMediaSampleAllocator* This) { 1123 return This->lpVtbl->AddRef(This); 1124 } 1125 static FORCEINLINE ULONG IDirectDrawMediaSampleAllocator_Release(IDirectDrawMediaSampleAllocator* This) { 1126 return This->lpVtbl->Release(This); 1127 } 1128 /*** IDirectDrawMediaSampleAllocator methods ***/ 1129 static FORCEINLINE HRESULT IDirectDrawMediaSampleAllocator_GetDirectDraw(IDirectDrawMediaSampleAllocator* This,IDirectDraw **ppDirectDraw) { 1130 return This->lpVtbl->GetDirectDraw(This,ppDirectDraw); 1131 } 1132 #endif 1133 #endif 1134 1135 #endif 1136 1137 1138 #endif /* __IDirectDrawMediaSampleAllocator_INTERFACE_DEFINED__ */ 1139 1140 /***************************************************************************** 1141 * IDirectDrawMediaSample interface 1142 */ 1143 #ifndef __IDirectDrawMediaSample_INTERFACE_DEFINED__ 1144 #define __IDirectDrawMediaSample_INTERFACE_DEFINED__ 1145 1146 DEFINE_GUID(IID_IDirectDrawMediaSample, 0xab6b4afe, 0xf6e4, 0x11d0, 0x90,0x0d, 0x00,0xc0,0x4f,0xd9,0x18,0x9d); 1147 #if defined(__cplusplus) && !defined(CINTERFACE) 1148 MIDL_INTERFACE("ab6b4afe-f6e4-11d0-900d-00c04fd9189d") 1149 IDirectDrawMediaSample : public IUnknown 1150 { 1151 virtual HRESULT STDMETHODCALLTYPE GetSurfaceAndReleaseLock( 1152 IDirectDrawSurface **ppDirectDrawSurface, 1153 RECT *pRect) = 0; 1154 1155 virtual HRESULT STDMETHODCALLTYPE LockMediaSamplePointer( 1156 ) = 0; 1157 1158 }; 1159 #ifdef __CRT_UUID_DECL 1160 __CRT_UUID_DECL(IDirectDrawMediaSample, 0xab6b4afe, 0xf6e4, 0x11d0, 0x90,0x0d, 0x00,0xc0,0x4f,0xd9,0x18,0x9d) 1161 #endif 1162 #else 1163 typedef struct IDirectDrawMediaSampleVtbl { 1164 BEGIN_INTERFACE 1165 1166 /*** IUnknown methods ***/ 1167 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 1168 IDirectDrawMediaSample *This, 1169 REFIID riid, 1170 void **ppvObject); 1171 1172 ULONG (STDMETHODCALLTYPE *AddRef)( 1173 IDirectDrawMediaSample *This); 1174 1175 ULONG (STDMETHODCALLTYPE *Release)( 1176 IDirectDrawMediaSample *This); 1177 1178 /*** IDirectDrawMediaSample methods ***/ 1179 HRESULT (STDMETHODCALLTYPE *GetSurfaceAndReleaseLock)( 1180 IDirectDrawMediaSample *This, 1181 IDirectDrawSurface **ppDirectDrawSurface, 1182 RECT *pRect); 1183 1184 HRESULT (STDMETHODCALLTYPE *LockMediaSamplePointer)( 1185 IDirectDrawMediaSample *This); 1186 1187 END_INTERFACE 1188 } IDirectDrawMediaSampleVtbl; 1189 1190 interface IDirectDrawMediaSample { 1191 CONST_VTBL IDirectDrawMediaSampleVtbl* lpVtbl; 1192 }; 1193 1194 #ifdef COBJMACROS 1195 #ifndef WIDL_C_INLINE_WRAPPERS 1196 /*** IUnknown methods ***/ 1197 #define IDirectDrawMediaSample_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 1198 #define IDirectDrawMediaSample_AddRef(This) (This)->lpVtbl->AddRef(This) 1199 #define IDirectDrawMediaSample_Release(This) (This)->lpVtbl->Release(This) 1200 /*** IDirectDrawMediaSample methods ***/ 1201 #define IDirectDrawMediaSample_GetSurfaceAndReleaseLock(This,ppDirectDrawSurface,pRect) (This)->lpVtbl->GetSurfaceAndReleaseLock(This,ppDirectDrawSurface,pRect) 1202 #define IDirectDrawMediaSample_LockMediaSamplePointer(This) (This)->lpVtbl->LockMediaSamplePointer(This) 1203 #else 1204 /*** IUnknown methods ***/ 1205 static FORCEINLINE HRESULT IDirectDrawMediaSample_QueryInterface(IDirectDrawMediaSample* This,REFIID riid,void **ppvObject) { 1206 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 1207 } 1208 static FORCEINLINE ULONG IDirectDrawMediaSample_AddRef(IDirectDrawMediaSample* This) { 1209 return This->lpVtbl->AddRef(This); 1210 } 1211 static FORCEINLINE ULONG IDirectDrawMediaSample_Release(IDirectDrawMediaSample* This) { 1212 return This->lpVtbl->Release(This); 1213 } 1214 /*** IDirectDrawMediaSample methods ***/ 1215 static FORCEINLINE HRESULT IDirectDrawMediaSample_GetSurfaceAndReleaseLock(IDirectDrawMediaSample* This,IDirectDrawSurface **ppDirectDrawSurface,RECT *pRect) { 1216 return This->lpVtbl->GetSurfaceAndReleaseLock(This,ppDirectDrawSurface,pRect); 1217 } 1218 static FORCEINLINE HRESULT IDirectDrawMediaSample_LockMediaSamplePointer(IDirectDrawMediaSample* This) { 1219 return This->lpVtbl->LockMediaSamplePointer(This); 1220 } 1221 #endif 1222 #endif 1223 1224 #endif 1225 1226 1227 #endif /* __IDirectDrawMediaSample_INTERFACE_DEFINED__ */ 1228 1229 /***************************************************************************** 1230 * IAMMediaTypeStream interface 1231 */ 1232 #ifndef __IAMMediaTypeStream_INTERFACE_DEFINED__ 1233 #define __IAMMediaTypeStream_INTERFACE_DEFINED__ 1234 1235 DEFINE_GUID(IID_IAMMediaTypeStream, 0xab6b4afa, 0xf6e4, 0x11d0, 0x90,0x0d, 0x00,0xc0,0x4f,0xd9,0x18,0x9d); 1236 #if defined(__cplusplus) && !defined(CINTERFACE) 1237 MIDL_INTERFACE("ab6b4afa-f6e4-11d0-900d-00c04fd9189d") 1238 IAMMediaTypeStream : public IMediaStream 1239 { 1240 virtual HRESULT STDMETHODCALLTYPE GetFormat( 1241 AM_MEDIA_TYPE *pMediaType, 1242 DWORD dwFlags) = 0; 1243 1244 virtual HRESULT STDMETHODCALLTYPE SetFormat( 1245 AM_MEDIA_TYPE *pMediaType, 1246 DWORD dwFlags) = 0; 1247 1248 virtual HRESULT STDMETHODCALLTYPE CreateSample( 1249 LONG lSampleSize, 1250 BYTE *pbBuffer, 1251 DWORD dwFlags, 1252 IUnknown *pUnkOuter, 1253 IAMMediaTypeSample **ppAMMediaTypeSample) = 0; 1254 1255 virtual HRESULT STDMETHODCALLTYPE GetStreamAllocatorRequirements( 1256 ALLOCATOR_PROPERTIES *pProps) = 0; 1257 1258 virtual HRESULT STDMETHODCALLTYPE SetStreamAllocatorRequirements( 1259 ALLOCATOR_PROPERTIES *pProps) = 0; 1260 1261 }; 1262 #ifdef __CRT_UUID_DECL 1263 __CRT_UUID_DECL(IAMMediaTypeStream, 0xab6b4afa, 0xf6e4, 0x11d0, 0x90,0x0d, 0x00,0xc0,0x4f,0xd9,0x18,0x9d) 1264 #endif 1265 #else 1266 typedef struct IAMMediaTypeStreamVtbl { 1267 BEGIN_INTERFACE 1268 1269 /*** IUnknown methods ***/ 1270 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 1271 IAMMediaTypeStream *This, 1272 REFIID riid, 1273 void **ppvObject); 1274 1275 ULONG (STDMETHODCALLTYPE *AddRef)( 1276 IAMMediaTypeStream *This); 1277 1278 ULONG (STDMETHODCALLTYPE *Release)( 1279 IAMMediaTypeStream *This); 1280 1281 /*** IMediaStream methods ***/ 1282 HRESULT (STDMETHODCALLTYPE *GetMultiMediaStream)( 1283 IAMMediaTypeStream *This, 1284 IMultiMediaStream **ppMultiMediaStream); 1285 1286 HRESULT (STDMETHODCALLTYPE *GetInformation)( 1287 IAMMediaTypeStream *This, 1288 MSPID *pPurposeId, 1289 STREAM_TYPE *pType); 1290 1291 HRESULT (STDMETHODCALLTYPE *SetSameFormat)( 1292 IAMMediaTypeStream *This, 1293 IMediaStream *pStreamThatHasDesiredFormat, 1294 DWORD dwFlags); 1295 1296 HRESULT (STDMETHODCALLTYPE *AllocateSample)( 1297 IAMMediaTypeStream *This, 1298 DWORD dwFlags, 1299 IStreamSample **ppSample); 1300 1301 HRESULT (STDMETHODCALLTYPE *CreateSharedSample)( 1302 IAMMediaTypeStream *This, 1303 IStreamSample *pExistingSample, 1304 DWORD dwFlags, 1305 IStreamSample **ppNewSample); 1306 1307 HRESULT (STDMETHODCALLTYPE *SendEndOfStream)( 1308 IAMMediaTypeStream *This, 1309 DWORD dwFlags); 1310 1311 /*** IAMMediaTypeStream methods ***/ 1312 HRESULT (STDMETHODCALLTYPE *GetFormat)( 1313 IAMMediaTypeStream *This, 1314 AM_MEDIA_TYPE *pMediaType, 1315 DWORD dwFlags); 1316 1317 HRESULT (STDMETHODCALLTYPE *SetFormat)( 1318 IAMMediaTypeStream *This, 1319 AM_MEDIA_TYPE *pMediaType, 1320 DWORD dwFlags); 1321 1322 HRESULT (STDMETHODCALLTYPE *CreateSample)( 1323 IAMMediaTypeStream *This, 1324 LONG lSampleSize, 1325 BYTE *pbBuffer, 1326 DWORD dwFlags, 1327 IUnknown *pUnkOuter, 1328 IAMMediaTypeSample **ppAMMediaTypeSample); 1329 1330 HRESULT (STDMETHODCALLTYPE *GetStreamAllocatorRequirements)( 1331 IAMMediaTypeStream *This, 1332 ALLOCATOR_PROPERTIES *pProps); 1333 1334 HRESULT (STDMETHODCALLTYPE *SetStreamAllocatorRequirements)( 1335 IAMMediaTypeStream *This, 1336 ALLOCATOR_PROPERTIES *pProps); 1337 1338 END_INTERFACE 1339 } IAMMediaTypeStreamVtbl; 1340 1341 interface IAMMediaTypeStream { 1342 CONST_VTBL IAMMediaTypeStreamVtbl* lpVtbl; 1343 }; 1344 1345 #ifdef COBJMACROS 1346 #ifndef WIDL_C_INLINE_WRAPPERS 1347 /*** IUnknown methods ***/ 1348 #define IAMMediaTypeStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 1349 #define IAMMediaTypeStream_AddRef(This) (This)->lpVtbl->AddRef(This) 1350 #define IAMMediaTypeStream_Release(This) (This)->lpVtbl->Release(This) 1351 /*** IMediaStream methods ***/ 1352 #define IAMMediaTypeStream_GetMultiMediaStream(This,ppMultiMediaStream) (This)->lpVtbl->GetMultiMediaStream(This,ppMultiMediaStream) 1353 #define IAMMediaTypeStream_GetInformation(This,pPurposeId,pType) (This)->lpVtbl->GetInformation(This,pPurposeId,pType) 1354 #define IAMMediaTypeStream_SetSameFormat(This,pStreamThatHasDesiredFormat,dwFlags) (This)->lpVtbl->SetSameFormat(This,pStreamThatHasDesiredFormat,dwFlags) 1355 #define IAMMediaTypeStream_AllocateSample(This,dwFlags,ppSample) (This)->lpVtbl->AllocateSample(This,dwFlags,ppSample) 1356 #define IAMMediaTypeStream_CreateSharedSample(This,pExistingSample,dwFlags,ppNewSample) (This)->lpVtbl->CreateSharedSample(This,pExistingSample,dwFlags,ppNewSample) 1357 #define IAMMediaTypeStream_SendEndOfStream(This,dwFlags) (This)->lpVtbl->SendEndOfStream(This,dwFlags) 1358 /*** IAMMediaTypeStream methods ***/ 1359 #define IAMMediaTypeStream_GetFormat(This,pMediaType,dwFlags) (This)->lpVtbl->GetFormat(This,pMediaType,dwFlags) 1360 #define IAMMediaTypeStream_SetFormat(This,pMediaType,dwFlags) (This)->lpVtbl->SetFormat(This,pMediaType,dwFlags) 1361 #define IAMMediaTypeStream_CreateSample(This,lSampleSize,pbBuffer,dwFlags,pUnkOuter,ppAMMediaTypeSample) (This)->lpVtbl->CreateSample(This,lSampleSize,pbBuffer,dwFlags,pUnkOuter,ppAMMediaTypeSample) 1362 #define IAMMediaTypeStream_GetStreamAllocatorRequirements(This,pProps) (This)->lpVtbl->GetStreamAllocatorRequirements(This,pProps) 1363 #define IAMMediaTypeStream_SetStreamAllocatorRequirements(This,pProps) (This)->lpVtbl->SetStreamAllocatorRequirements(This,pProps) 1364 #else 1365 /*** IUnknown methods ***/ 1366 static FORCEINLINE HRESULT IAMMediaTypeStream_QueryInterface(IAMMediaTypeStream* This,REFIID riid,void **ppvObject) { 1367 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 1368 } 1369 static FORCEINLINE ULONG IAMMediaTypeStream_AddRef(IAMMediaTypeStream* This) { 1370 return This->lpVtbl->AddRef(This); 1371 } 1372 static FORCEINLINE ULONG IAMMediaTypeStream_Release(IAMMediaTypeStream* This) { 1373 return This->lpVtbl->Release(This); 1374 } 1375 /*** IMediaStream methods ***/ 1376 static FORCEINLINE HRESULT IAMMediaTypeStream_GetMultiMediaStream(IAMMediaTypeStream* This,IMultiMediaStream **ppMultiMediaStream) { 1377 return This->lpVtbl->GetMultiMediaStream(This,ppMultiMediaStream); 1378 } 1379 static FORCEINLINE HRESULT IAMMediaTypeStream_GetInformation(IAMMediaTypeStream* This,MSPID *pPurposeId,STREAM_TYPE *pType) { 1380 return This->lpVtbl->GetInformation(This,pPurposeId,pType); 1381 } 1382 static FORCEINLINE HRESULT IAMMediaTypeStream_SetSameFormat(IAMMediaTypeStream* This,IMediaStream *pStreamThatHasDesiredFormat,DWORD dwFlags) { 1383 return This->lpVtbl->SetSameFormat(This,pStreamThatHasDesiredFormat,dwFlags); 1384 } 1385 static FORCEINLINE HRESULT IAMMediaTypeStream_AllocateSample(IAMMediaTypeStream* This,DWORD dwFlags,IStreamSample **ppSample) { 1386 return This->lpVtbl->AllocateSample(This,dwFlags,ppSample); 1387 } 1388 static FORCEINLINE HRESULT IAMMediaTypeStream_CreateSharedSample(IAMMediaTypeStream* This,IStreamSample *pExistingSample,DWORD dwFlags,IStreamSample **ppNewSample) { 1389 return This->lpVtbl->CreateSharedSample(This,pExistingSample,dwFlags,ppNewSample); 1390 } 1391 static FORCEINLINE HRESULT IAMMediaTypeStream_SendEndOfStream(IAMMediaTypeStream* This,DWORD dwFlags) { 1392 return This->lpVtbl->SendEndOfStream(This,dwFlags); 1393 } 1394 /*** IAMMediaTypeStream methods ***/ 1395 static FORCEINLINE HRESULT IAMMediaTypeStream_GetFormat(IAMMediaTypeStream* This,AM_MEDIA_TYPE *pMediaType,DWORD dwFlags) { 1396 return This->lpVtbl->GetFormat(This,pMediaType,dwFlags); 1397 } 1398 static FORCEINLINE HRESULT IAMMediaTypeStream_SetFormat(IAMMediaTypeStream* This,AM_MEDIA_TYPE *pMediaType,DWORD dwFlags) { 1399 return This->lpVtbl->SetFormat(This,pMediaType,dwFlags); 1400 } 1401 static FORCEINLINE HRESULT IAMMediaTypeStream_CreateSample(IAMMediaTypeStream* This,LONG lSampleSize,BYTE *pbBuffer,DWORD dwFlags,IUnknown *pUnkOuter,IAMMediaTypeSample **ppAMMediaTypeSample) { 1402 return This->lpVtbl->CreateSample(This,lSampleSize,pbBuffer,dwFlags,pUnkOuter,ppAMMediaTypeSample); 1403 } 1404 static FORCEINLINE HRESULT IAMMediaTypeStream_GetStreamAllocatorRequirements(IAMMediaTypeStream* This,ALLOCATOR_PROPERTIES *pProps) { 1405 return This->lpVtbl->GetStreamAllocatorRequirements(This,pProps); 1406 } 1407 static FORCEINLINE HRESULT IAMMediaTypeStream_SetStreamAllocatorRequirements(IAMMediaTypeStream* This,ALLOCATOR_PROPERTIES *pProps) { 1408 return This->lpVtbl->SetStreamAllocatorRequirements(This,pProps); 1409 } 1410 #endif 1411 #endif 1412 1413 #endif 1414 1415 1416 #endif /* __IAMMediaTypeStream_INTERFACE_DEFINED__ */ 1417 1418 /***************************************************************************** 1419 * IAMMediaTypeSample interface 1420 */ 1421 #ifndef __IAMMediaTypeSample_INTERFACE_DEFINED__ 1422 #define __IAMMediaTypeSample_INTERFACE_DEFINED__ 1423 1424 DEFINE_GUID(IID_IAMMediaTypeSample, 0xab6b4afb, 0xf6e4, 0x11d0, 0x90,0x0d, 0x00,0xc0,0x4f,0xd9,0x18,0x9d); 1425 #if defined(__cplusplus) && !defined(CINTERFACE) 1426 MIDL_INTERFACE("ab6b4afb-f6e4-11d0-900d-00c04fd9189d") 1427 IAMMediaTypeSample : public IStreamSample 1428 { 1429 virtual HRESULT STDMETHODCALLTYPE SetPointer( 1430 BYTE *pBuffer, 1431 LONG lSize) = 0; 1432 1433 virtual HRESULT STDMETHODCALLTYPE GetPointer( 1434 BYTE **ppBuffer) = 0; 1435 1436 virtual LONG STDMETHODCALLTYPE GetSize( 1437 ) = 0; 1438 1439 virtual HRESULT STDMETHODCALLTYPE GetTime( 1440 REFERENCE_TIME *pTimeStart, 1441 REFERENCE_TIME *pTimeEnd) = 0; 1442 1443 virtual HRESULT STDMETHODCALLTYPE SetTime( 1444 REFERENCE_TIME *pTimeStart, 1445 REFERENCE_TIME *pTimeEnd) = 0; 1446 1447 virtual HRESULT STDMETHODCALLTYPE IsSyncPoint( 1448 ) = 0; 1449 1450 virtual HRESULT STDMETHODCALLTYPE SetSyncPoint( 1451 WINBOOL bIsSyncPoint) = 0; 1452 1453 virtual HRESULT STDMETHODCALLTYPE IsPreroll( 1454 ) = 0; 1455 1456 virtual HRESULT STDMETHODCALLTYPE SetPreroll( 1457 WINBOOL bIsPreroll) = 0; 1458 1459 virtual LONG STDMETHODCALLTYPE GetActualDataLength( 1460 ) = 0; 1461 1462 virtual HRESULT STDMETHODCALLTYPE SetActualDataLength( 1463 LONG Len) = 0; 1464 1465 virtual HRESULT STDMETHODCALLTYPE GetMediaType( 1466 AM_MEDIA_TYPE **ppMediaType) = 0; 1467 1468 virtual HRESULT STDMETHODCALLTYPE SetMediaType( 1469 AM_MEDIA_TYPE *pMediaType) = 0; 1470 1471 virtual HRESULT STDMETHODCALLTYPE IsDiscontinuity( 1472 ) = 0; 1473 1474 virtual HRESULT STDMETHODCALLTYPE SetDiscontinuity( 1475 WINBOOL bDiscontinuity) = 0; 1476 1477 virtual HRESULT STDMETHODCALLTYPE GetMediaTime( 1478 LONGLONG *pTimeStart, 1479 LONGLONG *pTimeEnd) = 0; 1480 1481 virtual HRESULT STDMETHODCALLTYPE SetMediaTime( 1482 LONGLONG *pTimeStart, 1483 LONGLONG *pTimeEnd) = 0; 1484 1485 }; 1486 #ifdef __CRT_UUID_DECL 1487 __CRT_UUID_DECL(IAMMediaTypeSample, 0xab6b4afb, 0xf6e4, 0x11d0, 0x90,0x0d, 0x00,0xc0,0x4f,0xd9,0x18,0x9d) 1488 #endif 1489 #else 1490 typedef struct IAMMediaTypeSampleVtbl { 1491 BEGIN_INTERFACE 1492 1493 /*** IUnknown methods ***/ 1494 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 1495 IAMMediaTypeSample *This, 1496 REFIID riid, 1497 void **ppvObject); 1498 1499 ULONG (STDMETHODCALLTYPE *AddRef)( 1500 IAMMediaTypeSample *This); 1501 1502 ULONG (STDMETHODCALLTYPE *Release)( 1503 IAMMediaTypeSample *This); 1504 1505 /*** IStreamSample methods ***/ 1506 HRESULT (STDMETHODCALLTYPE *GetMediaStream)( 1507 IAMMediaTypeSample *This, 1508 IMediaStream **ppMediaStream); 1509 1510 HRESULT (STDMETHODCALLTYPE *GetSampleTimes)( 1511 IAMMediaTypeSample *This, 1512 STREAM_TIME *pStartTime, 1513 STREAM_TIME *pEndTime, 1514 STREAM_TIME *pCurrentTime); 1515 1516 HRESULT (STDMETHODCALLTYPE *SetSampleTimes)( 1517 IAMMediaTypeSample *This, 1518 const STREAM_TIME *pStartTime, 1519 const STREAM_TIME *pEndTime); 1520 1521 HRESULT (STDMETHODCALLTYPE *Update)( 1522 IAMMediaTypeSample *This, 1523 DWORD dwFlags, 1524 HANDLE hEvent, 1525 PAPCFUNC pfnAPC, 1526 DWORD dwAPCData); 1527 1528 HRESULT (STDMETHODCALLTYPE *CompletionStatus)( 1529 IAMMediaTypeSample *This, 1530 DWORD dwFlags, 1531 DWORD dwMilliseconds); 1532 1533 /*** IAMMediaTypeSample methods ***/ 1534 HRESULT (STDMETHODCALLTYPE *SetPointer)( 1535 IAMMediaTypeSample *This, 1536 BYTE *pBuffer, 1537 LONG lSize); 1538 1539 HRESULT (STDMETHODCALLTYPE *GetPointer)( 1540 IAMMediaTypeSample *This, 1541 BYTE **ppBuffer); 1542 1543 LONG (STDMETHODCALLTYPE *GetSize)( 1544 IAMMediaTypeSample *This); 1545 1546 HRESULT (STDMETHODCALLTYPE *GetTime)( 1547 IAMMediaTypeSample *This, 1548 REFERENCE_TIME *pTimeStart, 1549 REFERENCE_TIME *pTimeEnd); 1550 1551 HRESULT (STDMETHODCALLTYPE *SetTime)( 1552 IAMMediaTypeSample *This, 1553 REFERENCE_TIME *pTimeStart, 1554 REFERENCE_TIME *pTimeEnd); 1555 1556 HRESULT (STDMETHODCALLTYPE *IsSyncPoint)( 1557 IAMMediaTypeSample *This); 1558 1559 HRESULT (STDMETHODCALLTYPE *SetSyncPoint)( 1560 IAMMediaTypeSample *This, 1561 WINBOOL bIsSyncPoint); 1562 1563 HRESULT (STDMETHODCALLTYPE *IsPreroll)( 1564 IAMMediaTypeSample *This); 1565 1566 HRESULT (STDMETHODCALLTYPE *SetPreroll)( 1567 IAMMediaTypeSample *This, 1568 WINBOOL bIsPreroll); 1569 1570 LONG (STDMETHODCALLTYPE *GetActualDataLength)( 1571 IAMMediaTypeSample *This); 1572 1573 HRESULT (STDMETHODCALLTYPE *SetActualDataLength)( 1574 IAMMediaTypeSample *This, 1575 LONG Len); 1576 1577 HRESULT (STDMETHODCALLTYPE *GetMediaType)( 1578 IAMMediaTypeSample *This, 1579 AM_MEDIA_TYPE **ppMediaType); 1580 1581 HRESULT (STDMETHODCALLTYPE *SetMediaType)( 1582 IAMMediaTypeSample *This, 1583 AM_MEDIA_TYPE *pMediaType); 1584 1585 HRESULT (STDMETHODCALLTYPE *IsDiscontinuity)( 1586 IAMMediaTypeSample *This); 1587 1588 HRESULT (STDMETHODCALLTYPE *SetDiscontinuity)( 1589 IAMMediaTypeSample *This, 1590 WINBOOL bDiscontinuity); 1591 1592 HRESULT (STDMETHODCALLTYPE *GetMediaTime)( 1593 IAMMediaTypeSample *This, 1594 LONGLONG *pTimeStart, 1595 LONGLONG *pTimeEnd); 1596 1597 HRESULT (STDMETHODCALLTYPE *SetMediaTime)( 1598 IAMMediaTypeSample *This, 1599 LONGLONG *pTimeStart, 1600 LONGLONG *pTimeEnd); 1601 1602 END_INTERFACE 1603 } IAMMediaTypeSampleVtbl; 1604 1605 interface IAMMediaTypeSample { 1606 CONST_VTBL IAMMediaTypeSampleVtbl* lpVtbl; 1607 }; 1608 1609 #ifdef COBJMACROS 1610 #ifndef WIDL_C_INLINE_WRAPPERS 1611 /*** IUnknown methods ***/ 1612 #define IAMMediaTypeSample_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 1613 #define IAMMediaTypeSample_AddRef(This) (This)->lpVtbl->AddRef(This) 1614 #define IAMMediaTypeSample_Release(This) (This)->lpVtbl->Release(This) 1615 /*** IStreamSample methods ***/ 1616 #define IAMMediaTypeSample_GetMediaStream(This,ppMediaStream) (This)->lpVtbl->GetMediaStream(This,ppMediaStream) 1617 #define IAMMediaTypeSample_GetSampleTimes(This,pStartTime,pEndTime,pCurrentTime) (This)->lpVtbl->GetSampleTimes(This,pStartTime,pEndTime,pCurrentTime) 1618 #define IAMMediaTypeSample_SetSampleTimes(This,pStartTime,pEndTime) (This)->lpVtbl->SetSampleTimes(This,pStartTime,pEndTime) 1619 #define IAMMediaTypeSample_Update(This,dwFlags,hEvent,pfnAPC,dwAPCData) (This)->lpVtbl->Update(This,dwFlags,hEvent,pfnAPC,dwAPCData) 1620 #define IAMMediaTypeSample_CompletionStatus(This,dwFlags,dwMilliseconds) (This)->lpVtbl->CompletionStatus(This,dwFlags,dwMilliseconds) 1621 /*** IAMMediaTypeSample methods ***/ 1622 #define IAMMediaTypeSample_SetPointer(This,pBuffer,lSize) (This)->lpVtbl->SetPointer(This,pBuffer,lSize) 1623 #define IAMMediaTypeSample_GetPointer(This,ppBuffer) (This)->lpVtbl->GetPointer(This,ppBuffer) 1624 #define IAMMediaTypeSample_GetSize(This) (This)->lpVtbl->GetSize(This) 1625 #define IAMMediaTypeSample_GetTime(This,pTimeStart,pTimeEnd) (This)->lpVtbl->GetTime(This,pTimeStart,pTimeEnd) 1626 #define IAMMediaTypeSample_SetTime(This,pTimeStart,pTimeEnd) (This)->lpVtbl->SetTime(This,pTimeStart,pTimeEnd) 1627 #define IAMMediaTypeSample_IsSyncPoint(This) (This)->lpVtbl->IsSyncPoint(This) 1628 #define IAMMediaTypeSample_SetSyncPoint(This,bIsSyncPoint) (This)->lpVtbl->SetSyncPoint(This,bIsSyncPoint) 1629 #define IAMMediaTypeSample_IsPreroll(This) (This)->lpVtbl->IsPreroll(This) 1630 #define IAMMediaTypeSample_SetPreroll(This,bIsPreroll) (This)->lpVtbl->SetPreroll(This,bIsPreroll) 1631 #define IAMMediaTypeSample_GetActualDataLength(This) (This)->lpVtbl->GetActualDataLength(This) 1632 #define IAMMediaTypeSample_SetActualDataLength(This,Len) (This)->lpVtbl->SetActualDataLength(This,Len) 1633 #define IAMMediaTypeSample_GetMediaType(This,ppMediaType) (This)->lpVtbl->GetMediaType(This,ppMediaType) 1634 #define IAMMediaTypeSample_SetMediaType(This,pMediaType) (This)->lpVtbl->SetMediaType(This,pMediaType) 1635 #define IAMMediaTypeSample_IsDiscontinuity(This) (This)->lpVtbl->IsDiscontinuity(This) 1636 #define IAMMediaTypeSample_SetDiscontinuity(This,bDiscontinuity) (This)->lpVtbl->SetDiscontinuity(This,bDiscontinuity) 1637 #define IAMMediaTypeSample_GetMediaTime(This,pTimeStart,pTimeEnd) (This)->lpVtbl->GetMediaTime(This,pTimeStart,pTimeEnd) 1638 #define IAMMediaTypeSample_SetMediaTime(This,pTimeStart,pTimeEnd) (This)->lpVtbl->SetMediaTime(This,pTimeStart,pTimeEnd) 1639 #else 1640 /*** IUnknown methods ***/ 1641 static FORCEINLINE HRESULT IAMMediaTypeSample_QueryInterface(IAMMediaTypeSample* This,REFIID riid,void **ppvObject) { 1642 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 1643 } 1644 static FORCEINLINE ULONG IAMMediaTypeSample_AddRef(IAMMediaTypeSample* This) { 1645 return This->lpVtbl->AddRef(This); 1646 } 1647 static FORCEINLINE ULONG IAMMediaTypeSample_Release(IAMMediaTypeSample* This) { 1648 return This->lpVtbl->Release(This); 1649 } 1650 /*** IStreamSample methods ***/ 1651 static FORCEINLINE HRESULT IAMMediaTypeSample_GetMediaStream(IAMMediaTypeSample* This,IMediaStream **ppMediaStream) { 1652 return This->lpVtbl->GetMediaStream(This,ppMediaStream); 1653 } 1654 static FORCEINLINE HRESULT IAMMediaTypeSample_GetSampleTimes(IAMMediaTypeSample* This,STREAM_TIME *pStartTime,STREAM_TIME *pEndTime,STREAM_TIME *pCurrentTime) { 1655 return This->lpVtbl->GetSampleTimes(This,pStartTime,pEndTime,pCurrentTime); 1656 } 1657 static FORCEINLINE HRESULT IAMMediaTypeSample_SetSampleTimes(IAMMediaTypeSample* This,const STREAM_TIME *pStartTime,const STREAM_TIME *pEndTime) { 1658 return This->lpVtbl->SetSampleTimes(This,pStartTime,pEndTime); 1659 } 1660 static FORCEINLINE HRESULT IAMMediaTypeSample_Update(IAMMediaTypeSample* This,DWORD dwFlags,HANDLE hEvent,PAPCFUNC pfnAPC,DWORD dwAPCData) { 1661 return This->lpVtbl->Update(This,dwFlags,hEvent,pfnAPC,dwAPCData); 1662 } 1663 static FORCEINLINE HRESULT IAMMediaTypeSample_CompletionStatus(IAMMediaTypeSample* This,DWORD dwFlags,DWORD dwMilliseconds) { 1664 return This->lpVtbl->CompletionStatus(This,dwFlags,dwMilliseconds); 1665 } 1666 /*** IAMMediaTypeSample methods ***/ 1667 static FORCEINLINE HRESULT IAMMediaTypeSample_SetPointer(IAMMediaTypeSample* This,BYTE *pBuffer,LONG lSize) { 1668 return This->lpVtbl->SetPointer(This,pBuffer,lSize); 1669 } 1670 static FORCEINLINE HRESULT IAMMediaTypeSample_GetPointer(IAMMediaTypeSample* This,BYTE **ppBuffer) { 1671 return This->lpVtbl->GetPointer(This,ppBuffer); 1672 } 1673 static FORCEINLINE LONG IAMMediaTypeSample_GetSize(IAMMediaTypeSample* This) { 1674 return This->lpVtbl->GetSize(This); 1675 } 1676 static FORCEINLINE HRESULT IAMMediaTypeSample_GetTime(IAMMediaTypeSample* This,REFERENCE_TIME *pTimeStart,REFERENCE_TIME *pTimeEnd) { 1677 return This->lpVtbl->GetTime(This,pTimeStart,pTimeEnd); 1678 } 1679 static FORCEINLINE HRESULT IAMMediaTypeSample_SetTime(IAMMediaTypeSample* This,REFERENCE_TIME *pTimeStart,REFERENCE_TIME *pTimeEnd) { 1680 return This->lpVtbl->SetTime(This,pTimeStart,pTimeEnd); 1681 } 1682 static FORCEINLINE HRESULT IAMMediaTypeSample_IsSyncPoint(IAMMediaTypeSample* This) { 1683 return This->lpVtbl->IsSyncPoint(This); 1684 } 1685 static FORCEINLINE HRESULT IAMMediaTypeSample_SetSyncPoint(IAMMediaTypeSample* This,WINBOOL bIsSyncPoint) { 1686 return This->lpVtbl->SetSyncPoint(This,bIsSyncPoint); 1687 } 1688 static FORCEINLINE HRESULT IAMMediaTypeSample_IsPreroll(IAMMediaTypeSample* This) { 1689 return This->lpVtbl->IsPreroll(This); 1690 } 1691 static FORCEINLINE HRESULT IAMMediaTypeSample_SetPreroll(IAMMediaTypeSample* This,WINBOOL bIsPreroll) { 1692 return This->lpVtbl->SetPreroll(This,bIsPreroll); 1693 } 1694 static FORCEINLINE LONG IAMMediaTypeSample_GetActualDataLength(IAMMediaTypeSample* This) { 1695 return This->lpVtbl->GetActualDataLength(This); 1696 } 1697 static FORCEINLINE HRESULT IAMMediaTypeSample_SetActualDataLength(IAMMediaTypeSample* This,LONG Len) { 1698 return This->lpVtbl->SetActualDataLength(This,Len); 1699 } 1700 static FORCEINLINE HRESULT IAMMediaTypeSample_GetMediaType(IAMMediaTypeSample* This,AM_MEDIA_TYPE **ppMediaType) { 1701 return This->lpVtbl->GetMediaType(This,ppMediaType); 1702 } 1703 static FORCEINLINE HRESULT IAMMediaTypeSample_SetMediaType(IAMMediaTypeSample* This,AM_MEDIA_TYPE *pMediaType) { 1704 return This->lpVtbl->SetMediaType(This,pMediaType); 1705 } 1706 static FORCEINLINE HRESULT IAMMediaTypeSample_IsDiscontinuity(IAMMediaTypeSample* This) { 1707 return This->lpVtbl->IsDiscontinuity(This); 1708 } 1709 static FORCEINLINE HRESULT IAMMediaTypeSample_SetDiscontinuity(IAMMediaTypeSample* This,WINBOOL bDiscontinuity) { 1710 return This->lpVtbl->SetDiscontinuity(This,bDiscontinuity); 1711 } 1712 static FORCEINLINE HRESULT IAMMediaTypeSample_GetMediaTime(IAMMediaTypeSample* This,LONGLONG *pTimeStart,LONGLONG *pTimeEnd) { 1713 return This->lpVtbl->GetMediaTime(This,pTimeStart,pTimeEnd); 1714 } 1715 static FORCEINLINE HRESULT IAMMediaTypeSample_SetMediaTime(IAMMediaTypeSample* This,LONGLONG *pTimeStart,LONGLONG *pTimeEnd) { 1716 return This->lpVtbl->SetMediaTime(This,pTimeStart,pTimeEnd); 1717 } 1718 #endif 1719 #endif 1720 1721 #endif 1722 1723 1724 #endif /* __IAMMediaTypeSample_INTERFACE_DEFINED__ */ 1725 1726 /***************************************************************************** 1727 * AMMultiMediaStream coclass 1728 */ 1729 1730 DEFINE_GUID(CLSID_AMMultiMediaStream, 0x49c47ce5, 0x9ba4, 0x11d0, 0x82,0x12, 0x00,0xc0,0x4f,0xc3,0x2c,0x45); 1731 1732 #ifdef __cplusplus 1733 class DECLSPEC_UUID("49c47ce5-9ba4-11d0-8212-00c04fc32c45") AMMultiMediaStream; 1734 #ifdef __CRT_UUID_DECL 1735 __CRT_UUID_DECL(AMMultiMediaStream, 0x49c47ce5, 0x9ba4, 0x11d0, 0x82,0x12, 0x00,0xc0,0x4f,0xc3,0x2c,0x45) 1736 #endif 1737 #endif 1738 1739 DEFINE_GUID(CLSID_AMDirectDrawStream, 0x49c47ce4, 0x9ba4, 0x11d0, 0x82, 0x12, 0x00, 0xc0, 0x4f, 0xc3, 0x2c, 0x45); 1740 DEFINE_GUID(CLSID_AMAudioStream, 0x8496e040, 0xaf4c, 0x11d0, 0x82, 0x12, 0x00, 0xc0, 0x4f, 0xc3, 0x2c, 0x45); 1741 DEFINE_GUID(CLSID_AMAudioData, 0xf2468580, 0xaf8a, 0x11d0, 0x82, 0x12, 0x00, 0xc0, 0x4f, 0xc3, 0x2c, 0x45); 1742 DEFINE_GUID(CLSID_AMMediaTypeStream, 0xcf0f2f7c, 0xf7bf, 0x11d0, 0x90, 0x0d, 0x00, 0xc0, 0x4f, 0xd9, 0x18, 0x9d); 1743 DEFINE_GUID(CLSID_MediaStreamFilter, 0x49c47ce0, 0x9ba4, 0x11d0, 0x82, 0x12, 0x00, 0xc0, 0x4f, 0xc3, 0x2c, 0x45); 1744 /* Begin additional prototypes for all interfaces */ 1745 1746 ULONG __RPC_USER BSTR_UserSize (ULONG *, ULONG, BSTR *); 1747 unsigned char * __RPC_USER BSTR_UserMarshal (ULONG *, unsigned char *, BSTR *); 1748 unsigned char * __RPC_USER BSTR_UserUnmarshal(ULONG *, unsigned char *, BSTR *); 1749 void __RPC_USER BSTR_UserFree (ULONG *, BSTR *); 1750 1751 /* End additional prototypes */ 1752 1753 #ifdef __cplusplus 1754 } 1755 #endif 1756 1757 #endif /* __amstream_h__ */ 1758