zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

mmstream.h (20607B) - Raw


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