Home | History | Annotate | Download | only in include
      1 /*** Autogenerated by WIDL 1.5.29 from /tmp/build-mingw64-toolchain-joshualang/src/mingw-w64-svn-r5861/mingw-w64-headers/direct-x/include/mmstream.idl - Do not edit ***/
      2 
      3 #ifndef __REQUIRED_RPCNDR_H_VERSION__
      4 #define __REQUIRED_RPCNDR_H_VERSION__ 475
      5 #endif
      6 
      7 #include <rpc.h>
      8 #include <rpcndr.h>
      9 
     10 #ifndef COM_NO_WINDOWS_H
     11 #include <windows.h>
     12 #include <ole2.h>
     13 #endif
     14 
     15 #ifndef __mmstream_h__
     16 #define __mmstream_h__
     17 
     18 /* Forward declarations */
     19 
     20 #ifndef __IMultiMediaStream_FWD_DEFINED__
     21 #define __IMultiMediaStream_FWD_DEFINED__
     22 typedef interface IMultiMediaStream IMultiMediaStream;
     23 #endif
     24 
     25 #ifndef __IMediaStream_FWD_DEFINED__
     26 #define __IMediaStream_FWD_DEFINED__
     27 typedef interface IMediaStream IMediaStream;
     28 #endif
     29 
     30 #ifndef __IStreamSample_FWD_DEFINED__
     31 #define __IStreamSample_FWD_DEFINED__
     32 typedef interface IStreamSample IStreamSample;
     33 #endif
     34 
     35 /* Headers for imported files */
     36 
     37 #include <unknwn.h>
     38 
     39 #ifdef __cplusplus
     40 extern "C" {
     41 #endif
     42 
     43 #define MS_ERROR_CODE(x)                  MAKE_HRESULT(1, FACILITY_ITF, (x) + 0x400)
     44 #define MS_SUCCESS_CODE(x)                MAKE_HRESULT(0, FACILITY_ITF, x)
     45 #define MS_S_PENDING                      MS_SUCCESS_CODE(1)
     46 #define MS_S_NOUPDATE                     MS_SUCCESS_CODE(2)
     47 #define MS_S_ENDOFSTREAM                  MS_SUCCESS_CODE(3)
     48 #define MS_E_SAMPLEALLOC                  MS_ERROR_CODE(1)
     49 #define MS_E_PURPOSEID                    MS_ERROR_CODE(2)
     50 #define MS_E_NOSTREAM                     MS_ERROR_CODE(3)
     51 #define MS_E_NOSEEKING                    MS_ERROR_CODE(4)
     52 #define MS_E_INCOMPATIBLE                 MS_ERROR_CODE(5)
     53 #define MS_E_BUSY                         MS_ERROR_CODE(6)
     54 #define MS_E_NOTINIT                      MS_ERROR_CODE(7)
     55 #define MS_E_SOURCEALREADYDEFINED         MS_ERROR_CODE(8)
     56 #define MS_E_INVALIDSTREAMTYPE            MS_ERROR_CODE(9)
     57 #define MS_E_NOTRUNNING                   MS_ERROR_CODE(10)
     58 DEFINE_GUID(MSPID_PrimaryVideo,  0xa35ff56a, 0x9fda, 0x11d0, 0x8f, 0xdf, 0x0, 0xc0, 0x4f, 0xd9, 0x18, 0x9d);
     59 DEFINE_GUID(MSPID_PrimaryAudio,  0xa35ff56b, 0x9fda, 0x11d0, 0x8f, 0xdf, 0x0, 0xc0, 0x4f, 0xd9, 0x18, 0x9d);
     60 #if 0
     61 typedef void *PAPCFUNC;
     62 #endif
     63 typedef LONGLONG STREAM_TIME;
     64 typedef GUID MSPID;
     65 typedef REFGUID REFMSPID;
     66 typedef enum __WIDL_mmstream_generated_name_00000000 {
     67     STREAMTYPE_READ = 0,
     68     STREAMTYPE_WRITE = 1,
     69     STREAMTYPE_TRANSFORM = 2
     70 } STREAM_TYPE;
     71 typedef enum __WIDL_mmstream_generated_name_00000001 {
     72     STREAMSTATE_STOP = 0,
     73     STREAMSTATE_RUN = 1
     74 } STREAM_STATE;
     75 typedef enum __WIDL_mmstream_generated_name_00000002 {
     76     COMPSTAT_NOUPDATEOK = 0x1,
     77     COMPSTAT_WAIT = 0x2,
     78     COMPSTAT_ABORT = 0x4
     79 } COMPLETION_STATUS_FLAGS;
     80 enum {
     81     MMSSF_HASCLOCK = 0x1,
     82     MMSSF_SUPPORTSEEK = 0x2,
     83     MMSSF_ASYNCHRONOUS = 0x4
     84 };
     85 
     86 enum {
     87     SSUPDATE_ASYNC = 0x1,
     88     SSUPDATE_CONTINUOUS = 0x2
     89 };
     90 
     91 #ifndef __IMultiMediaStream_FWD_DEFINED__
     92 #define __IMultiMediaStream_FWD_DEFINED__
     93 typedef interface IMultiMediaStream IMultiMediaStream;
     94 #endif
     95 
     96 #ifndef __IMediaStream_FWD_DEFINED__
     97 #define __IMediaStream_FWD_DEFINED__
     98 typedef interface IMediaStream IMediaStream;
     99 #endif
    100 
    101 #ifndef __IStreamSample_FWD_DEFINED__
    102 #define __IStreamSample_FWD_DEFINED__
    103 typedef interface IStreamSample IStreamSample;
    104 #endif
    105 
    106 /*****************************************************************************
    107  * IMultiMediaStream interface
    108  */
    109 #ifndef __IMultiMediaStream_INTERFACE_DEFINED__
    110 #define __IMultiMediaStream_INTERFACE_DEFINED__
    111 
    112 DEFINE_GUID(IID_IMultiMediaStream, 0xb502d1bc, 0x9a57, 0x11d0, 0x8f,0xde, 0x00,0xc0,0x4f,0xd9,0x18,0x9d);
    113 #if defined(__cplusplus) && !defined(CINTERFACE)
    114 MIDL_INTERFACE("b502d1bc-9a57-11d0-8fde-00c04fd9189d")
    115 IMultiMediaStream : public IUnknown
    116 {
    117     virtual HRESULT STDMETHODCALLTYPE GetInformation(
    118         DWORD *pdwFlags,
    119         STREAM_TYPE *pStreamType) = 0;
    120 
    121     virtual HRESULT STDMETHODCALLTYPE GetMediaStream(
    122         REFMSPID idPurpose,
    123         IMediaStream **ppMediaStream) = 0;
    124 
    125     virtual HRESULT STDMETHODCALLTYPE EnumMediaStreams(
    126         LONG Index,
    127         IMediaStream **ppMediaStream) = 0;
    128 
    129     virtual HRESULT STDMETHODCALLTYPE GetState(
    130         STREAM_STATE *pCurrentState) = 0;
    131 
    132     virtual HRESULT STDMETHODCALLTYPE SetState(
    133         STREAM_STATE NewState) = 0;
    134 
    135     virtual HRESULT STDMETHODCALLTYPE GetTime(
    136         STREAM_TIME *pCurrentTime) = 0;
    137 
    138     virtual HRESULT STDMETHODCALLTYPE GetDuration(
    139         STREAM_TIME *pDuration) = 0;
    140 
    141     virtual HRESULT STDMETHODCALLTYPE Seek(
    142         STREAM_TIME SeekTime) = 0;
    143 
    144     virtual HRESULT STDMETHODCALLTYPE GetEndOfStreamEventHandle(
    145         HANDLE *phEOS) = 0;
    146 
    147 };
    148 #ifdef __CRT_UUID_DECL
    149 __CRT_UUID_DECL(IMultiMediaStream, 0xb502d1bc, 0x9a57, 0x11d0, 0x8f,0xde, 0x00,0xc0,0x4f,0xd9,0x18,0x9d)
    150 #endif
    151 #else
    152 typedef struct IMultiMediaStreamVtbl {
    153     BEGIN_INTERFACE
    154 
    155     /*** IUnknown methods ***/
    156     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    157         IMultiMediaStream* This,
    158         REFIID riid,
    159         void **ppvObject);
    160 
    161     ULONG (STDMETHODCALLTYPE *AddRef)(
    162         IMultiMediaStream* This);
    163 
    164     ULONG (STDMETHODCALLTYPE *Release)(
    165         IMultiMediaStream* This);
    166 
    167     /*** IMultiMediaStream methods ***/
    168     HRESULT (STDMETHODCALLTYPE *GetInformation)(
    169         IMultiMediaStream* This,
    170         DWORD *pdwFlags,
    171         STREAM_TYPE *pStreamType);
    172 
    173     HRESULT (STDMETHODCALLTYPE *GetMediaStream)(
    174         IMultiMediaStream* This,
    175         REFMSPID idPurpose,
    176         IMediaStream **ppMediaStream);
    177 
    178     HRESULT (STDMETHODCALLTYPE *EnumMediaStreams)(
    179         IMultiMediaStream* This,
    180         LONG Index,
    181         IMediaStream **ppMediaStream);
    182 
    183     HRESULT (STDMETHODCALLTYPE *GetState)(
    184         IMultiMediaStream* This,
    185         STREAM_STATE *pCurrentState);
    186 
    187     HRESULT (STDMETHODCALLTYPE *SetState)(
    188         IMultiMediaStream* This,
    189         STREAM_STATE NewState);
    190 
    191     HRESULT (STDMETHODCALLTYPE *GetTime)(
    192         IMultiMediaStream* This,
    193         STREAM_TIME *pCurrentTime);
    194 
    195     HRESULT (STDMETHODCALLTYPE *GetDuration)(
    196         IMultiMediaStream* This,
    197         STREAM_TIME *pDuration);
    198 
    199     HRESULT (STDMETHODCALLTYPE *Seek)(
    200         IMultiMediaStream* This,
    201         STREAM_TIME SeekTime);
    202 
    203     HRESULT (STDMETHODCALLTYPE *GetEndOfStreamEventHandle)(
    204         IMultiMediaStream* This,
    205         HANDLE *phEOS);
    206 
    207     END_INTERFACE
    208 } IMultiMediaStreamVtbl;
    209 interface IMultiMediaStream {
    210     CONST_VTBL IMultiMediaStreamVtbl* lpVtbl;
    211 };
    212 
    213 #ifdef COBJMACROS
    214 #ifndef WIDL_C_INLINE_WRAPPERS
    215 /*** IUnknown methods ***/
    216 #define IMultiMediaStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    217 #define IMultiMediaStream_AddRef(This) (This)->lpVtbl->AddRef(This)
    218 #define IMultiMediaStream_Release(This) (This)->lpVtbl->Release(This)
    219 /*** IMultiMediaStream methods ***/
    220 #define IMultiMediaStream_GetInformation(This,pdwFlags,pStreamType) (This)->lpVtbl->GetInformation(This,pdwFlags,pStreamType)
    221 #define IMultiMediaStream_GetMediaStream(This,idPurpose,ppMediaStream) (This)->lpVtbl->GetMediaStream(This,idPurpose,ppMediaStream)
    222 #define IMultiMediaStream_EnumMediaStreams(This,Index,ppMediaStream) (This)->lpVtbl->EnumMediaStreams(This,Index,ppMediaStream)
    223 #define IMultiMediaStream_GetState(This,pCurrentState) (This)->lpVtbl->GetState(This,pCurrentState)
    224 #define IMultiMediaStream_SetState(This,NewState) (This)->lpVtbl->SetState(This,NewState)
    225 #define IMultiMediaStream_GetTime(This,pCurrentTime) (This)->lpVtbl->GetTime(This,pCurrentTime)
    226 #define IMultiMediaStream_GetDuration(This,pDuration) (This)->lpVtbl->GetDuration(This,pDuration)
    227 #define IMultiMediaStream_Seek(This,SeekTime) (This)->lpVtbl->Seek(This,SeekTime)
    228 #define IMultiMediaStream_GetEndOfStreamEventHandle(This,phEOS) (This)->lpVtbl->GetEndOfStreamEventHandle(This,phEOS)
    229 #else
    230 /*** IUnknown methods ***/
    231 static FORCEINLINE HRESULT IMultiMediaStream_QueryInterface(IMultiMediaStream* This,REFIID riid,void **ppvObject) {
    232     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    233 }
    234 static FORCEINLINE ULONG IMultiMediaStream_AddRef(IMultiMediaStream* This) {
    235     return This->lpVtbl->AddRef(This);
    236 }
    237 static FORCEINLINE ULONG IMultiMediaStream_Release(IMultiMediaStream* This) {
    238     return This->lpVtbl->Release(This);
    239 }
    240 /*** IMultiMediaStream methods ***/
    241 static FORCEINLINE HRESULT IMultiMediaStream_GetInformation(IMultiMediaStream* This,DWORD *pdwFlags,STREAM_TYPE *pStreamType) {
    242     return This->lpVtbl->GetInformation(This,pdwFlags,pStreamType);
    243 }
    244 static FORCEINLINE HRESULT IMultiMediaStream_GetMediaStream(IMultiMediaStream* This,REFMSPID idPurpose,IMediaStream **ppMediaStream) {
    245     return This->lpVtbl->GetMediaStream(This,idPurpose,ppMediaStream);
    246 }
    247 static FORCEINLINE HRESULT IMultiMediaStream_EnumMediaStreams(IMultiMediaStream* This,LONG Index,IMediaStream **ppMediaStream) {
    248     return This->lpVtbl->EnumMediaStreams(This,Index,ppMediaStream);
    249 }
    250 static FORCEINLINE HRESULT IMultiMediaStream_GetState(IMultiMediaStream* This,STREAM_STATE *pCurrentState) {
    251     return This->lpVtbl->GetState(This,pCurrentState);
    252 }
    253 static FORCEINLINE HRESULT IMultiMediaStream_SetState(IMultiMediaStream* This,STREAM_STATE NewState) {
    254     return This->lpVtbl->SetState(This,NewState);
    255 }
    256 static FORCEINLINE HRESULT IMultiMediaStream_GetTime(IMultiMediaStream* This,STREAM_TIME *pCurrentTime) {
    257     return This->lpVtbl->GetTime(This,pCurrentTime);
    258 }
    259 static FORCEINLINE HRESULT IMultiMediaStream_GetDuration(IMultiMediaStream* This,STREAM_TIME *pDuration) {
    260     return This->lpVtbl->GetDuration(This,pDuration);
    261 }
    262 static FORCEINLINE HRESULT IMultiMediaStream_Seek(IMultiMediaStream* This,STREAM_TIME SeekTime) {
    263     return This->lpVtbl->Seek(This,SeekTime);
    264 }
    265 static FORCEINLINE HRESULT IMultiMediaStream_GetEndOfStreamEventHandle(IMultiMediaStream* This,HANDLE *phEOS) {
    266     return This->lpVtbl->GetEndOfStreamEventHandle(This,phEOS);
    267 }
    268 #endif
    269 #endif
    270 
    271 #endif
    272 
    273 HRESULT STDMETHODCALLTYPE IMultiMediaStream_GetInformation_Proxy(
    274     IMultiMediaStream* This,
    275     DWORD *pdwFlags,
    276     STREAM_TYPE *pStreamType);
    277 void __RPC_STUB IMultiMediaStream_GetInformation_Stub(
    278     IRpcStubBuffer* This,
    279     IRpcChannelBuffer* pRpcChannelBuffer,
    280     PRPC_MESSAGE pRpcMessage,
    281     DWORD* pdwStubPhase);
    282 HRESULT STDMETHODCALLTYPE IMultiMediaStream_GetMediaStream_Proxy(
    283     IMultiMediaStream* This,
    284     REFMSPID idPurpose,
    285     IMediaStream **ppMediaStream);
    286 void __RPC_STUB IMultiMediaStream_GetMediaStream_Stub(
    287     IRpcStubBuffer* This,
    288     IRpcChannelBuffer* pRpcChannelBuffer,
    289     PRPC_MESSAGE pRpcMessage,
    290     DWORD* pdwStubPhase);
    291 HRESULT STDMETHODCALLTYPE IMultiMediaStream_EnumMediaStreams_Proxy(
    292     IMultiMediaStream* This,
    293     LONG Index,
    294     IMediaStream **ppMediaStream);
    295 void __RPC_STUB IMultiMediaStream_EnumMediaStreams_Stub(
    296     IRpcStubBuffer* This,
    297     IRpcChannelBuffer* pRpcChannelBuffer,
    298     PRPC_MESSAGE pRpcMessage,
    299     DWORD* pdwStubPhase);
    300 HRESULT STDMETHODCALLTYPE IMultiMediaStream_GetState_Proxy(
    301     IMultiMediaStream* This,
    302     STREAM_STATE *pCurrentState);
    303 void __RPC_STUB IMultiMediaStream_GetState_Stub(
    304     IRpcStubBuffer* This,
    305     IRpcChannelBuffer* pRpcChannelBuffer,
    306     PRPC_MESSAGE pRpcMessage,
    307     DWORD* pdwStubPhase);
    308 HRESULT STDMETHODCALLTYPE IMultiMediaStream_SetState_Proxy(
    309     IMultiMediaStream* This,
    310     STREAM_STATE NewState);
    311 void __RPC_STUB IMultiMediaStream_SetState_Stub(
    312     IRpcStubBuffer* This,
    313     IRpcChannelBuffer* pRpcChannelBuffer,
    314     PRPC_MESSAGE pRpcMessage,
    315     DWORD* pdwStubPhase);
    316 HRESULT STDMETHODCALLTYPE IMultiMediaStream_GetTime_Proxy(
    317     IMultiMediaStream* This,
    318     STREAM_TIME *pCurrentTime);
    319 void __RPC_STUB IMultiMediaStream_GetTime_Stub(
    320     IRpcStubBuffer* This,
    321     IRpcChannelBuffer* pRpcChannelBuffer,
    322     PRPC_MESSAGE pRpcMessage,
    323     DWORD* pdwStubPhase);
    324 HRESULT STDMETHODCALLTYPE IMultiMediaStream_GetDuration_Proxy(
    325     IMultiMediaStream* This,
    326     STREAM_TIME *pDuration);
    327 void __RPC_STUB IMultiMediaStream_GetDuration_Stub(
    328     IRpcStubBuffer* This,
    329     IRpcChannelBuffer* pRpcChannelBuffer,
    330     PRPC_MESSAGE pRpcMessage,
    331     DWORD* pdwStubPhase);
    332 HRESULT STDMETHODCALLTYPE IMultiMediaStream_Seek_Proxy(
    333     IMultiMediaStream* This,
    334     STREAM_TIME SeekTime);
    335 void __RPC_STUB IMultiMediaStream_Seek_Stub(
    336     IRpcStubBuffer* This,
    337     IRpcChannelBuffer* pRpcChannelBuffer,
    338     PRPC_MESSAGE pRpcMessage,
    339     DWORD* pdwStubPhase);
    340 HRESULT STDMETHODCALLTYPE IMultiMediaStream_GetEndOfStreamEventHandle_Proxy(
    341     IMultiMediaStream* This,
    342     HANDLE *phEOS);
    343 void __RPC_STUB IMultiMediaStream_GetEndOfStreamEventHandle_Stub(
    344     IRpcStubBuffer* This,
    345     IRpcChannelBuffer* pRpcChannelBuffer,
    346     PRPC_MESSAGE pRpcMessage,
    347     DWORD* pdwStubPhase);
    348 
    349 #endif  /* __IMultiMediaStream_INTERFACE_DEFINED__ */
    350 
    351 /*****************************************************************************
    352  * IMediaStream interface
    353  */
    354 #ifndef __IMediaStream_INTERFACE_DEFINED__
    355 #define __IMediaStream_INTERFACE_DEFINED__
    356 
    357 DEFINE_GUID(IID_IMediaStream, 0xb502d1bd, 0x9a57, 0x11d0, 0x8f,0xde, 0x00,0xc0,0x4f,0xd9,0x18,0x9d);
    358 #if defined(__cplusplus) && !defined(CINTERFACE)
    359 MIDL_INTERFACE("b502d1bd-9a57-11d0-8fde-00c04fd9189d")
    360 IMediaStream : public IUnknown
    361 {
    362     virtual HRESULT STDMETHODCALLTYPE GetMultiMediaStream(
    363         IMultiMediaStream **ppMultiMediaStream) = 0;
    364 
    365     virtual HRESULT STDMETHODCALLTYPE GetInformation(
    366         MSPID *pPurposeId,
    367         STREAM_TYPE *pType) = 0;
    368 
    369     virtual HRESULT STDMETHODCALLTYPE SetSameFormat(
    370         IMediaStream *pStreamThatHasDesiredFormat,
    371         DWORD dwFlags) = 0;
    372 
    373     virtual HRESULT STDMETHODCALLTYPE AllocateSample(
    374         DWORD dwFlags,
    375         IStreamSample **ppSample) = 0;
    376 
    377     virtual HRESULT STDMETHODCALLTYPE CreateSharedSample(
    378         IStreamSample *pExistingSample,
    379         DWORD dwFlags,
    380         IStreamSample **ppNewSample) = 0;
    381 
    382     virtual HRESULT STDMETHODCALLTYPE SendEndOfStream(
    383         DWORD dwFlags) = 0;
    384 
    385 };
    386 #ifdef __CRT_UUID_DECL
    387 __CRT_UUID_DECL(IMediaStream, 0xb502d1bd, 0x9a57, 0x11d0, 0x8f,0xde, 0x00,0xc0,0x4f,0xd9,0x18,0x9d)
    388 #endif
    389 #else
    390 typedef struct IMediaStreamVtbl {
    391     BEGIN_INTERFACE
    392 
    393     /*** IUnknown methods ***/
    394     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    395         IMediaStream* This,
    396         REFIID riid,
    397         void **ppvObject);
    398 
    399     ULONG (STDMETHODCALLTYPE *AddRef)(
    400         IMediaStream* This);
    401 
    402     ULONG (STDMETHODCALLTYPE *Release)(
    403         IMediaStream* This);
    404 
    405     /*** IMediaStream methods ***/
    406     HRESULT (STDMETHODCALLTYPE *GetMultiMediaStream)(
    407         IMediaStream* This,
    408         IMultiMediaStream **ppMultiMediaStream);
    409 
    410     HRESULT (STDMETHODCALLTYPE *GetInformation)(
    411         IMediaStream* This,
    412         MSPID *pPurposeId,
    413         STREAM_TYPE *pType);
    414 
    415     HRESULT (STDMETHODCALLTYPE *SetSameFormat)(
    416         IMediaStream* This,
    417         IMediaStream *pStreamThatHasDesiredFormat,
    418         DWORD dwFlags);
    419 
    420     HRESULT (STDMETHODCALLTYPE *AllocateSample)(
    421         IMediaStream* This,
    422         DWORD dwFlags,
    423         IStreamSample **ppSample);
    424 
    425     HRESULT (STDMETHODCALLTYPE *CreateSharedSample)(
    426         IMediaStream* This,
    427         IStreamSample *pExistingSample,
    428         DWORD dwFlags,
    429         IStreamSample **ppNewSample);
    430 
    431     HRESULT (STDMETHODCALLTYPE *SendEndOfStream)(
    432         IMediaStream* This,
    433         DWORD dwFlags);
    434 
    435     END_INTERFACE
    436 } IMediaStreamVtbl;
    437 interface IMediaStream {
    438     CONST_VTBL IMediaStreamVtbl* lpVtbl;
    439 };
    440 
    441 #ifdef COBJMACROS
    442 #ifndef WIDL_C_INLINE_WRAPPERS
    443 /*** IUnknown methods ***/
    444 #define IMediaStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    445 #define IMediaStream_AddRef(This) (This)->lpVtbl->AddRef(This)
    446 #define IMediaStream_Release(This) (This)->lpVtbl->Release(This)
    447 /*** IMediaStream methods ***/
    448 #define IMediaStream_GetMultiMediaStream(This,ppMultiMediaStream) (This)->lpVtbl->GetMultiMediaStream(This,ppMultiMediaStream)
    449 #define IMediaStream_GetInformation(This,pPurposeId,pType) (This)->lpVtbl->GetInformation(This,pPurposeId,pType)
    450 #define IMediaStream_SetSameFormat(This,pStreamThatHasDesiredFormat,dwFlags) (This)->lpVtbl->SetSameFormat(This,pStreamThatHasDesiredFormat,dwFlags)
    451 #define IMediaStream_AllocateSample(This,dwFlags,ppSample) (This)->lpVtbl->AllocateSample(This,dwFlags,ppSample)
    452 #define IMediaStream_CreateSharedSample(This,pExistingSample,dwFlags,ppNewSample) (This)->lpVtbl->CreateSharedSample(This,pExistingSample,dwFlags,ppNewSample)
    453 #define IMediaStream_SendEndOfStream(This,dwFlags) (This)->lpVtbl->SendEndOfStream(This,dwFlags)
    454 #else
    455 /*** IUnknown methods ***/
    456 static FORCEINLINE HRESULT IMediaStream_QueryInterface(IMediaStream* This,REFIID riid,void **ppvObject) {
    457     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    458 }
    459 static FORCEINLINE ULONG IMediaStream_AddRef(IMediaStream* This) {
    460     return This->lpVtbl->AddRef(This);
    461 }
    462 static FORCEINLINE ULONG IMediaStream_Release(IMediaStream* This) {
    463     return This->lpVtbl->Release(This);
    464 }
    465 /*** IMediaStream methods ***/
    466 static FORCEINLINE HRESULT IMediaStream_GetMultiMediaStream(IMediaStream* This,IMultiMediaStream **ppMultiMediaStream) {
    467     return This->lpVtbl->GetMultiMediaStream(This,ppMultiMediaStream);
    468 }
    469 static FORCEINLINE HRESULT IMediaStream_GetInformation(IMediaStream* This,MSPID *pPurposeId,STREAM_TYPE *pType) {
    470     return This->lpVtbl->GetInformation(This,pPurposeId,pType);
    471 }
    472 static FORCEINLINE HRESULT IMediaStream_SetSameFormat(IMediaStream* This,IMediaStream *pStreamThatHasDesiredFormat,DWORD dwFlags) {
    473     return This->lpVtbl->SetSameFormat(This,pStreamThatHasDesiredFormat,dwFlags);
    474 }
    475 static FORCEINLINE HRESULT IMediaStream_AllocateSample(IMediaStream* This,DWORD dwFlags,IStreamSample **ppSample) {
    476     return This->lpVtbl->AllocateSample(This,dwFlags,ppSample);
    477 }
    478 static FORCEINLINE HRESULT IMediaStream_CreateSharedSample(IMediaStream* This,IStreamSample *pExistingSample,DWORD dwFlags,IStreamSample **ppNewSample) {
    479     return This->lpVtbl->CreateSharedSample(This,pExistingSample,dwFlags,ppNewSample);
    480 }
    481 static FORCEINLINE HRESULT IMediaStream_SendEndOfStream(IMediaStream* This,DWORD dwFlags) {
    482     return This->lpVtbl->SendEndOfStream(This,dwFlags);
    483 }
    484 #endif
    485 #endif
    486 
    487 #endif
    488 
    489 HRESULT STDMETHODCALLTYPE IMediaStream_GetMultiMediaStream_Proxy(
    490     IMediaStream* This,
    491     IMultiMediaStream **ppMultiMediaStream);
    492 void __RPC_STUB IMediaStream_GetMultiMediaStream_Stub(
    493     IRpcStubBuffer* This,
    494     IRpcChannelBuffer* pRpcChannelBuffer,
    495     PRPC_MESSAGE pRpcMessage,
    496     DWORD* pdwStubPhase);
    497 HRESULT STDMETHODCALLTYPE IMediaStream_GetInformation_Proxy(
    498     IMediaStream* This,
    499     MSPID *pPurposeId,
    500     STREAM_TYPE *pType);
    501 void __RPC_STUB IMediaStream_GetInformation_Stub(
    502     IRpcStubBuffer* This,
    503     IRpcChannelBuffer* pRpcChannelBuffer,
    504     PRPC_MESSAGE pRpcMessage,
    505     DWORD* pdwStubPhase);
    506 HRESULT STDMETHODCALLTYPE IMediaStream_SetSameFormat_Proxy(
    507     IMediaStream* This,
    508     IMediaStream *pStreamThatHasDesiredFormat,
    509     DWORD dwFlags);
    510 void __RPC_STUB IMediaStream_SetSameFormat_Stub(
    511     IRpcStubBuffer* This,
    512     IRpcChannelBuffer* pRpcChannelBuffer,
    513     PRPC_MESSAGE pRpcMessage,
    514     DWORD* pdwStubPhase);
    515 HRESULT STDMETHODCALLTYPE IMediaStream_AllocateSample_Proxy(
    516     IMediaStream* This,
    517     DWORD dwFlags,
    518     IStreamSample **ppSample);
    519 void __RPC_STUB IMediaStream_AllocateSample_Stub(
    520     IRpcStubBuffer* This,
    521     IRpcChannelBuffer* pRpcChannelBuffer,
    522     PRPC_MESSAGE pRpcMessage,
    523     DWORD* pdwStubPhase);
    524 HRESULT STDMETHODCALLTYPE IMediaStream_CreateSharedSample_Proxy(
    525     IMediaStream* This,
    526     IStreamSample *pExistingSample,
    527     DWORD dwFlags,
    528     IStreamSample **ppNewSample);
    529 void __RPC_STUB IMediaStream_CreateSharedSample_Stub(
    530     IRpcStubBuffer* This,
    531     IRpcChannelBuffer* pRpcChannelBuffer,
    532     PRPC_MESSAGE pRpcMessage,
    533     DWORD* pdwStubPhase);
    534 HRESULT STDMETHODCALLTYPE IMediaStream_SendEndOfStream_Proxy(
    535     IMediaStream* This,
    536     DWORD dwFlags);
    537 void __RPC_STUB IMediaStream_SendEndOfStream_Stub(
    538     IRpcStubBuffer* This,
    539     IRpcChannelBuffer* pRpcChannelBuffer,
    540     PRPC_MESSAGE pRpcMessage,
    541     DWORD* pdwStubPhase);
    542 
    543 #endif  /* __IMediaStream_INTERFACE_DEFINED__ */
    544 
    545 /*****************************************************************************
    546  * IStreamSample interface
    547  */
    548 #ifndef __IStreamSample_INTERFACE_DEFINED__
    549 #define __IStreamSample_INTERFACE_DEFINED__
    550 
    551 DEFINE_GUID(IID_IStreamSample, 0xb502d1be, 0x9a57, 0x11d0, 0x8f,0xde, 0x00,0xc0,0x4f,0xd9,0x18,0x9d);
    552 #if defined(__cplusplus) && !defined(CINTERFACE)
    553 MIDL_INTERFACE("b502d1be-9a57-11d0-8fde-00c04fd9189d")
    554 IStreamSample : public IUnknown
    555 {
    556     virtual HRESULT STDMETHODCALLTYPE GetMediaStream(
    557         IMediaStream **ppMediaStream) = 0;
    558 
    559     virtual HRESULT STDMETHODCALLTYPE GetSampleTimes(
    560         STREAM_TIME *pStartTime,
    561         STREAM_TIME *pEndTime,
    562         STREAM_TIME *pCurrentTime) = 0;
    563 
    564     virtual HRESULT STDMETHODCALLTYPE SetSampleTimes(
    565         const STREAM_TIME *pStartTime,
    566         const STREAM_TIME *pEndTime) = 0;
    567 
    568     virtual HRESULT STDMETHODCALLTYPE Update(
    569         DWORD dwFlags,
    570         HANDLE hEvent,
    571         PAPCFUNC pfnAPC,
    572         DWORD dwAPCData) = 0;
    573 
    574     virtual HRESULT STDMETHODCALLTYPE CompletionStatus(
    575         DWORD dwFlags,
    576         DWORD dwMilliseconds) = 0;
    577 
    578 };
    579 #ifdef __CRT_UUID_DECL
    580 __CRT_UUID_DECL(IStreamSample, 0xb502d1be, 0x9a57, 0x11d0, 0x8f,0xde, 0x00,0xc0,0x4f,0xd9,0x18,0x9d)
    581 #endif
    582 #else
    583 typedef struct IStreamSampleVtbl {
    584     BEGIN_INTERFACE
    585 
    586     /*** IUnknown methods ***/
    587     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    588         IStreamSample* This,
    589         REFIID riid,
    590         void **ppvObject);
    591 
    592     ULONG (STDMETHODCALLTYPE *AddRef)(
    593         IStreamSample* This);
    594 
    595     ULONG (STDMETHODCALLTYPE *Release)(
    596         IStreamSample* This);
    597 
    598     /*** IStreamSample methods ***/
    599     HRESULT (STDMETHODCALLTYPE *GetMediaStream)(
    600         IStreamSample* This,
    601         IMediaStream **ppMediaStream);
    602 
    603     HRESULT (STDMETHODCALLTYPE *GetSampleTimes)(
    604         IStreamSample* This,
    605         STREAM_TIME *pStartTime,
    606         STREAM_TIME *pEndTime,
    607         STREAM_TIME *pCurrentTime);
    608 
    609     HRESULT (STDMETHODCALLTYPE *SetSampleTimes)(
    610         IStreamSample* This,
    611         const STREAM_TIME *pStartTime,
    612         const STREAM_TIME *pEndTime);
    613 
    614     HRESULT (STDMETHODCALLTYPE *Update)(
    615         IStreamSample* This,
    616         DWORD dwFlags,
    617         HANDLE hEvent,
    618         PAPCFUNC pfnAPC,
    619         DWORD dwAPCData);
    620 
    621     HRESULT (STDMETHODCALLTYPE *CompletionStatus)(
    622         IStreamSample* This,
    623         DWORD dwFlags,
    624         DWORD dwMilliseconds);
    625 
    626     END_INTERFACE
    627 } IStreamSampleVtbl;
    628 interface IStreamSample {
    629     CONST_VTBL IStreamSampleVtbl* lpVtbl;
    630 };
    631 
    632 #ifdef COBJMACROS
    633 #ifndef WIDL_C_INLINE_WRAPPERS
    634 /*** IUnknown methods ***/
    635 #define IStreamSample_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    636 #define IStreamSample_AddRef(This) (This)->lpVtbl->AddRef(This)
    637 #define IStreamSample_Release(This) (This)->lpVtbl->Release(This)
    638 /*** IStreamSample methods ***/
    639 #define IStreamSample_GetMediaStream(This,ppMediaStream) (This)->lpVtbl->GetMediaStream(This,ppMediaStream)
    640 #define IStreamSample_GetSampleTimes(This,pStartTime,pEndTime,pCurrentTime) (This)->lpVtbl->GetSampleTimes(This,pStartTime,pEndTime,pCurrentTime)
    641 #define IStreamSample_SetSampleTimes(This,pStartTime,pEndTime) (This)->lpVtbl->SetSampleTimes(This,pStartTime,pEndTime)
    642 #define IStreamSample_Update(This,dwFlags,hEvent,pfnAPC,dwAPCData) (This)->lpVtbl->Update(This,dwFlags,hEvent,pfnAPC,dwAPCData)
    643 #define IStreamSample_CompletionStatus(This,dwFlags,dwMilliseconds) (This)->lpVtbl->CompletionStatus(This,dwFlags,dwMilliseconds)
    644 #else
    645 /*** IUnknown methods ***/
    646 static FORCEINLINE HRESULT IStreamSample_QueryInterface(IStreamSample* This,REFIID riid,void **ppvObject) {
    647     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    648 }
    649 static FORCEINLINE ULONG IStreamSample_AddRef(IStreamSample* This) {
    650     return This->lpVtbl->AddRef(This);
    651 }
    652 static FORCEINLINE ULONG IStreamSample_Release(IStreamSample* This) {
    653     return This->lpVtbl->Release(This);
    654 }
    655 /*** IStreamSample methods ***/
    656 static FORCEINLINE HRESULT IStreamSample_GetMediaStream(IStreamSample* This,IMediaStream **ppMediaStream) {
    657     return This->lpVtbl->GetMediaStream(This,ppMediaStream);
    658 }
    659 static FORCEINLINE HRESULT IStreamSample_GetSampleTimes(IStreamSample* This,STREAM_TIME *pStartTime,STREAM_TIME *pEndTime,STREAM_TIME *pCurrentTime) {
    660     return This->lpVtbl->GetSampleTimes(This,pStartTime,pEndTime,pCurrentTime);
    661 }
    662 static FORCEINLINE HRESULT IStreamSample_SetSampleTimes(IStreamSample* This,const STREAM_TIME *pStartTime,const STREAM_TIME *pEndTime) {
    663     return This->lpVtbl->SetSampleTimes(This,pStartTime,pEndTime);
    664 }
    665 static FORCEINLINE HRESULT IStreamSample_Update(IStreamSample* This,DWORD dwFlags,HANDLE hEvent,PAPCFUNC pfnAPC,DWORD dwAPCData) {
    666     return This->lpVtbl->Update(This,dwFlags,hEvent,pfnAPC,dwAPCData);
    667 }
    668 static FORCEINLINE HRESULT IStreamSample_CompletionStatus(IStreamSample* This,DWORD dwFlags,DWORD dwMilliseconds) {
    669     return This->lpVtbl->CompletionStatus(This,dwFlags,dwMilliseconds);
    670 }
    671 #endif
    672 #endif
    673 
    674 #endif
    675 
    676 HRESULT STDMETHODCALLTYPE IStreamSample_GetMediaStream_Proxy(
    677     IStreamSample* This,
    678     IMediaStream **ppMediaStream);
    679 void __RPC_STUB IStreamSample_GetMediaStream_Stub(
    680     IRpcStubBuffer* This,
    681     IRpcChannelBuffer* pRpcChannelBuffer,
    682     PRPC_MESSAGE pRpcMessage,
    683     DWORD* pdwStubPhase);
    684 HRESULT STDMETHODCALLTYPE IStreamSample_GetSampleTimes_Proxy(
    685     IStreamSample* This,
    686     STREAM_TIME *pStartTime,
    687     STREAM_TIME *pEndTime,
    688     STREAM_TIME *pCurrentTime);
    689 void __RPC_STUB IStreamSample_GetSampleTimes_Stub(
    690     IRpcStubBuffer* This,
    691     IRpcChannelBuffer* pRpcChannelBuffer,
    692     PRPC_MESSAGE pRpcMessage,
    693     DWORD* pdwStubPhase);
    694 HRESULT STDMETHODCALLTYPE IStreamSample_SetSampleTimes_Proxy(
    695     IStreamSample* This,
    696     const STREAM_TIME *pStartTime,
    697     const STREAM_TIME *pEndTime);
    698 void __RPC_STUB IStreamSample_SetSampleTimes_Stub(
    699     IRpcStubBuffer* This,
    700     IRpcChannelBuffer* pRpcChannelBuffer,
    701     PRPC_MESSAGE pRpcMessage,
    702     DWORD* pdwStubPhase);
    703 HRESULT STDMETHODCALLTYPE IStreamSample_Update_Proxy(
    704     IStreamSample* This,
    705     DWORD dwFlags,
    706     HANDLE hEvent,
    707     PAPCFUNC pfnAPC,
    708     DWORD dwAPCData);
    709 void __RPC_STUB IStreamSample_Update_Stub(
    710     IRpcStubBuffer* This,
    711     IRpcChannelBuffer* pRpcChannelBuffer,
    712     PRPC_MESSAGE pRpcMessage,
    713     DWORD* pdwStubPhase);
    714 HRESULT STDMETHODCALLTYPE IStreamSample_CompletionStatus_Proxy(
    715     IStreamSample* This,
    716     DWORD dwFlags,
    717     DWORD dwMilliseconds);
    718 void __RPC_STUB IStreamSample_CompletionStatus_Stub(
    719     IRpcStubBuffer* This,
    720     IRpcChannelBuffer* pRpcChannelBuffer,
    721     PRPC_MESSAGE pRpcMessage,
    722     DWORD* pdwStubPhase);
    723 
    724 #endif  /* __IStreamSample_INTERFACE_DEFINED__ */
    725 
    726 /* Begin additional prototypes for all interfaces */
    727 
    728 
    729 /* End additional prototypes */
    730 
    731 #ifdef __cplusplus
    732 }
    733 #endif
    734 
    735 #endif /* __mmstream_h__ */
    736