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/austream.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 __austream_h__
     16 #define __austream_h__
     17 
     18 /* Forward declarations */
     19 
     20 #ifndef __IAudioMediaStream_FWD_DEFINED__
     21 #define __IAudioMediaStream_FWD_DEFINED__
     22 typedef interface IAudioMediaStream IAudioMediaStream;
     23 #endif
     24 
     25 #ifndef __IAudioStreamSample_FWD_DEFINED__
     26 #define __IAudioStreamSample_FWD_DEFINED__
     27 typedef interface IAudioStreamSample IAudioStreamSample;
     28 #endif
     29 
     30 #ifndef __IMemoryData_FWD_DEFINED__
     31 #define __IMemoryData_FWD_DEFINED__
     32 typedef interface IMemoryData IMemoryData;
     33 #endif
     34 
     35 #ifndef __IAudioData_FWD_DEFINED__
     36 #define __IAudioData_FWD_DEFINED__
     37 typedef interface IAudioData IAudioData;
     38 #endif
     39 
     40 /* Headers for imported files */
     41 
     42 #include <unknwn.h>
     43 #include <mmstream.h>
     44 
     45 #ifdef __cplusplus
     46 extern "C" {
     47 #endif
     48 
     49 #if 0
     50 typedef struct tWAVEFORMATEX WAVEFORMATEX;
     51 #endif
     52 #ifndef __IAudioMediaStream_FWD_DEFINED__
     53 #define __IAudioMediaStream_FWD_DEFINED__
     54 typedef interface IAudioMediaStream IAudioMediaStream;
     55 #endif
     56 
     57 #ifndef __IAudioStreamSample_FWD_DEFINED__
     58 #define __IAudioStreamSample_FWD_DEFINED__
     59 typedef interface IAudioStreamSample IAudioStreamSample;
     60 #endif
     61 
     62 #ifndef __IMemoryData_FWD_DEFINED__
     63 #define __IMemoryData_FWD_DEFINED__
     64 typedef interface IMemoryData IMemoryData;
     65 #endif
     66 
     67 #ifndef __IAudioData_FWD_DEFINED__
     68 #define __IAudioData_FWD_DEFINED__
     69 typedef interface IAudioData IAudioData;
     70 #endif
     71 
     72 /*****************************************************************************
     73  * IAudioMediaStream interface
     74  */
     75 #ifndef __IAudioMediaStream_INTERFACE_DEFINED__
     76 #define __IAudioMediaStream_INTERFACE_DEFINED__
     77 
     78 DEFINE_GUID(IID_IAudioMediaStream, 0xf7537560, 0xa3be, 0x11d0, 0x82,0x12, 0x00,0xc0,0x4f,0xc3,0x2c,0x45);
     79 #if defined(__cplusplus) && !defined(CINTERFACE)
     80 MIDL_INTERFACE("f7537560-a3be-11d0-8212-00c04fc32c45")
     81 IAudioMediaStream : public IMediaStream
     82 {
     83     virtual HRESULT STDMETHODCALLTYPE GetFormat(
     84         WAVEFORMATEX *pWaveFormatCurrent) = 0;
     85 
     86     virtual HRESULT STDMETHODCALLTYPE SetFormat(
     87         const WAVEFORMATEX *lpWaveFormat) = 0;
     88 
     89     virtual HRESULT STDMETHODCALLTYPE CreateSample(
     90         IAudioData *pAudioData,
     91         DWORD dwFlags,
     92         IAudioStreamSample **ppSample) = 0;
     93 
     94 };
     95 #ifdef __CRT_UUID_DECL
     96 __CRT_UUID_DECL(IAudioMediaStream, 0xf7537560, 0xa3be, 0x11d0, 0x82,0x12, 0x00,0xc0,0x4f,0xc3,0x2c,0x45)
     97 #endif
     98 #else
     99 typedef struct IAudioMediaStreamVtbl {
    100     BEGIN_INTERFACE
    101 
    102     /*** IUnknown methods ***/
    103     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    104         IAudioMediaStream* This,
    105         REFIID riid,
    106         void **ppvObject);
    107 
    108     ULONG (STDMETHODCALLTYPE *AddRef)(
    109         IAudioMediaStream* This);
    110 
    111     ULONG (STDMETHODCALLTYPE *Release)(
    112         IAudioMediaStream* This);
    113 
    114     /*** IMediaStream methods ***/
    115     HRESULT (STDMETHODCALLTYPE *GetMultiMediaStream)(
    116         IAudioMediaStream* This,
    117         IMultiMediaStream **ppMultiMediaStream);
    118 
    119     HRESULT (STDMETHODCALLTYPE *GetInformation)(
    120         IAudioMediaStream* This,
    121         MSPID *pPurposeId,
    122         STREAM_TYPE *pType);
    123 
    124     HRESULT (STDMETHODCALLTYPE *SetSameFormat)(
    125         IAudioMediaStream* This,
    126         IMediaStream *pStreamThatHasDesiredFormat,
    127         DWORD dwFlags);
    128 
    129     HRESULT (STDMETHODCALLTYPE *AllocateSample)(
    130         IAudioMediaStream* This,
    131         DWORD dwFlags,
    132         IStreamSample **ppSample);
    133 
    134     HRESULT (STDMETHODCALLTYPE *CreateSharedSample)(
    135         IAudioMediaStream* This,
    136         IStreamSample *pExistingSample,
    137         DWORD dwFlags,
    138         IStreamSample **ppNewSample);
    139 
    140     HRESULT (STDMETHODCALLTYPE *SendEndOfStream)(
    141         IAudioMediaStream* This,
    142         DWORD dwFlags);
    143 
    144     /*** IAudioMediaStream methods ***/
    145     HRESULT (STDMETHODCALLTYPE *GetFormat)(
    146         IAudioMediaStream* This,
    147         WAVEFORMATEX *pWaveFormatCurrent);
    148 
    149     HRESULT (STDMETHODCALLTYPE *SetFormat)(
    150         IAudioMediaStream* This,
    151         const WAVEFORMATEX *lpWaveFormat);
    152 
    153     HRESULT (STDMETHODCALLTYPE *CreateSample)(
    154         IAudioMediaStream* This,
    155         IAudioData *pAudioData,
    156         DWORD dwFlags,
    157         IAudioStreamSample **ppSample);
    158 
    159     END_INTERFACE
    160 } IAudioMediaStreamVtbl;
    161 interface IAudioMediaStream {
    162     CONST_VTBL IAudioMediaStreamVtbl* lpVtbl;
    163 };
    164 
    165 #ifdef COBJMACROS
    166 #ifndef WIDL_C_INLINE_WRAPPERS
    167 /*** IUnknown methods ***/
    168 #define IAudioMediaStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    169 #define IAudioMediaStream_AddRef(This) (This)->lpVtbl->AddRef(This)
    170 #define IAudioMediaStream_Release(This) (This)->lpVtbl->Release(This)
    171 /*** IMediaStream methods ***/
    172 #define IAudioMediaStream_GetMultiMediaStream(This,ppMultiMediaStream) (This)->lpVtbl->GetMultiMediaStream(This,ppMultiMediaStream)
    173 #define IAudioMediaStream_GetInformation(This,pPurposeId,pType) (This)->lpVtbl->GetInformation(This,pPurposeId,pType)
    174 #define IAudioMediaStream_SetSameFormat(This,pStreamThatHasDesiredFormat,dwFlags) (This)->lpVtbl->SetSameFormat(This,pStreamThatHasDesiredFormat,dwFlags)
    175 #define IAudioMediaStream_AllocateSample(This,dwFlags,ppSample) (This)->lpVtbl->AllocateSample(This,dwFlags,ppSample)
    176 #define IAudioMediaStream_CreateSharedSample(This,pExistingSample,dwFlags,ppNewSample) (This)->lpVtbl->CreateSharedSample(This,pExistingSample,dwFlags,ppNewSample)
    177 #define IAudioMediaStream_SendEndOfStream(This,dwFlags) (This)->lpVtbl->SendEndOfStream(This,dwFlags)
    178 /*** IAudioMediaStream methods ***/
    179 #define IAudioMediaStream_GetFormat(This,pWaveFormatCurrent) (This)->lpVtbl->GetFormat(This,pWaveFormatCurrent)
    180 #define IAudioMediaStream_SetFormat(This,lpWaveFormat) (This)->lpVtbl->SetFormat(This,lpWaveFormat)
    181 #define IAudioMediaStream_CreateSample(This,pAudioData,dwFlags,ppSample) (This)->lpVtbl->CreateSample(This,pAudioData,dwFlags,ppSample)
    182 #else
    183 /*** IUnknown methods ***/
    184 static FORCEINLINE HRESULT IAudioMediaStream_QueryInterface(IAudioMediaStream* This,REFIID riid,void **ppvObject) {
    185     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    186 }
    187 static FORCEINLINE ULONG IAudioMediaStream_AddRef(IAudioMediaStream* This) {
    188     return This->lpVtbl->AddRef(This);
    189 }
    190 static FORCEINLINE ULONG IAudioMediaStream_Release(IAudioMediaStream* This) {
    191     return This->lpVtbl->Release(This);
    192 }
    193 /*** IMediaStream methods ***/
    194 static FORCEINLINE HRESULT IAudioMediaStream_GetMultiMediaStream(IAudioMediaStream* This,IMultiMediaStream **ppMultiMediaStream) {
    195     return This->lpVtbl->GetMultiMediaStream(This,ppMultiMediaStream);
    196 }
    197 static FORCEINLINE HRESULT IAudioMediaStream_GetInformation(IAudioMediaStream* This,MSPID *pPurposeId,STREAM_TYPE *pType) {
    198     return This->lpVtbl->GetInformation(This,pPurposeId,pType);
    199 }
    200 static FORCEINLINE HRESULT IAudioMediaStream_SetSameFormat(IAudioMediaStream* This,IMediaStream *pStreamThatHasDesiredFormat,DWORD dwFlags) {
    201     return This->lpVtbl->SetSameFormat(This,pStreamThatHasDesiredFormat,dwFlags);
    202 }
    203 static FORCEINLINE HRESULT IAudioMediaStream_AllocateSample(IAudioMediaStream* This,DWORD dwFlags,IStreamSample **ppSample) {
    204     return This->lpVtbl->AllocateSample(This,dwFlags,ppSample);
    205 }
    206 static FORCEINLINE HRESULT IAudioMediaStream_CreateSharedSample(IAudioMediaStream* This,IStreamSample *pExistingSample,DWORD dwFlags,IStreamSample **ppNewSample) {
    207     return This->lpVtbl->CreateSharedSample(This,pExistingSample,dwFlags,ppNewSample);
    208 }
    209 static FORCEINLINE HRESULT IAudioMediaStream_SendEndOfStream(IAudioMediaStream* This,DWORD dwFlags) {
    210     return This->lpVtbl->SendEndOfStream(This,dwFlags);
    211 }
    212 /*** IAudioMediaStream methods ***/
    213 static FORCEINLINE HRESULT IAudioMediaStream_GetFormat(IAudioMediaStream* This,WAVEFORMATEX *pWaveFormatCurrent) {
    214     return This->lpVtbl->GetFormat(This,pWaveFormatCurrent);
    215 }
    216 static FORCEINLINE HRESULT IAudioMediaStream_SetFormat(IAudioMediaStream* This,const WAVEFORMATEX *lpWaveFormat) {
    217     return This->lpVtbl->SetFormat(This,lpWaveFormat);
    218 }
    219 static FORCEINLINE HRESULT IAudioMediaStream_CreateSample(IAudioMediaStream* This,IAudioData *pAudioData,DWORD dwFlags,IAudioStreamSample **ppSample) {
    220     return This->lpVtbl->CreateSample(This,pAudioData,dwFlags,ppSample);
    221 }
    222 #endif
    223 #endif
    224 
    225 #endif
    226 
    227 HRESULT STDMETHODCALLTYPE IAudioMediaStream_GetFormat_Proxy(
    228     IAudioMediaStream* This,
    229     WAVEFORMATEX *pWaveFormatCurrent);
    230 void __RPC_STUB IAudioMediaStream_GetFormat_Stub(
    231     IRpcStubBuffer* This,
    232     IRpcChannelBuffer* pRpcChannelBuffer,
    233     PRPC_MESSAGE pRpcMessage,
    234     DWORD* pdwStubPhase);
    235 HRESULT STDMETHODCALLTYPE IAudioMediaStream_SetFormat_Proxy(
    236     IAudioMediaStream* This,
    237     const WAVEFORMATEX *lpWaveFormat);
    238 void __RPC_STUB IAudioMediaStream_SetFormat_Stub(
    239     IRpcStubBuffer* This,
    240     IRpcChannelBuffer* pRpcChannelBuffer,
    241     PRPC_MESSAGE pRpcMessage,
    242     DWORD* pdwStubPhase);
    243 HRESULT STDMETHODCALLTYPE IAudioMediaStream_CreateSample_Proxy(
    244     IAudioMediaStream* This,
    245     IAudioData *pAudioData,
    246     DWORD dwFlags,
    247     IAudioStreamSample **ppSample);
    248 void __RPC_STUB IAudioMediaStream_CreateSample_Stub(
    249     IRpcStubBuffer* This,
    250     IRpcChannelBuffer* pRpcChannelBuffer,
    251     PRPC_MESSAGE pRpcMessage,
    252     DWORD* pdwStubPhase);
    253 
    254 #endif  /* __IAudioMediaStream_INTERFACE_DEFINED__ */
    255 
    256 /*****************************************************************************
    257  * IAudioStreamSample interface
    258  */
    259 #ifndef __IAudioStreamSample_INTERFACE_DEFINED__
    260 #define __IAudioStreamSample_INTERFACE_DEFINED__
    261 
    262 DEFINE_GUID(IID_IAudioStreamSample, 0x345fee00, 0xaba5, 0x11d0, 0x82,0x12, 0x00,0xc0,0x4f,0xc3,0x2c,0x45);
    263 #if defined(__cplusplus) && !defined(CINTERFACE)
    264 MIDL_INTERFACE("345fee00-aba5-11d0-8212-00c04fc32c45")
    265 IAudioStreamSample : public IStreamSample
    266 {
    267     virtual HRESULT STDMETHODCALLTYPE GetAudioData(
    268         IAudioData **ppAudio) = 0;
    269 
    270 };
    271 #ifdef __CRT_UUID_DECL
    272 __CRT_UUID_DECL(IAudioStreamSample, 0x345fee00, 0xaba5, 0x11d0, 0x82,0x12, 0x00,0xc0,0x4f,0xc3,0x2c,0x45)
    273 #endif
    274 #else
    275 typedef struct IAudioStreamSampleVtbl {
    276     BEGIN_INTERFACE
    277 
    278     /*** IUnknown methods ***/
    279     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    280         IAudioStreamSample* This,
    281         REFIID riid,
    282         void **ppvObject);
    283 
    284     ULONG (STDMETHODCALLTYPE *AddRef)(
    285         IAudioStreamSample* This);
    286 
    287     ULONG (STDMETHODCALLTYPE *Release)(
    288         IAudioStreamSample* This);
    289 
    290     /*** IStreamSample methods ***/
    291     HRESULT (STDMETHODCALLTYPE *GetMediaStream)(
    292         IAudioStreamSample* This,
    293         IMediaStream **ppMediaStream);
    294 
    295     HRESULT (STDMETHODCALLTYPE *GetSampleTimes)(
    296         IAudioStreamSample* This,
    297         STREAM_TIME *pStartTime,
    298         STREAM_TIME *pEndTime,
    299         STREAM_TIME *pCurrentTime);
    300 
    301     HRESULT (STDMETHODCALLTYPE *SetSampleTimes)(
    302         IAudioStreamSample* This,
    303         const STREAM_TIME *pStartTime,
    304         const STREAM_TIME *pEndTime);
    305 
    306     HRESULT (STDMETHODCALLTYPE *Update)(
    307         IAudioStreamSample* This,
    308         DWORD dwFlags,
    309         HANDLE hEvent,
    310         PAPCFUNC pfnAPC,
    311         DWORD dwAPCData);
    312 
    313     HRESULT (STDMETHODCALLTYPE *CompletionStatus)(
    314         IAudioStreamSample* This,
    315         DWORD dwFlags,
    316         DWORD dwMilliseconds);
    317 
    318     /*** IAudioStreamSample methods ***/
    319     HRESULT (STDMETHODCALLTYPE *GetAudioData)(
    320         IAudioStreamSample* This,
    321         IAudioData **ppAudio);
    322 
    323     END_INTERFACE
    324 } IAudioStreamSampleVtbl;
    325 interface IAudioStreamSample {
    326     CONST_VTBL IAudioStreamSampleVtbl* lpVtbl;
    327 };
    328 
    329 #ifdef COBJMACROS
    330 #ifndef WIDL_C_INLINE_WRAPPERS
    331 /*** IUnknown methods ***/
    332 #define IAudioStreamSample_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    333 #define IAudioStreamSample_AddRef(This) (This)->lpVtbl->AddRef(This)
    334 #define IAudioStreamSample_Release(This) (This)->lpVtbl->Release(This)
    335 /*** IStreamSample methods ***/
    336 #define IAudioStreamSample_GetMediaStream(This,ppMediaStream) (This)->lpVtbl->GetMediaStream(This,ppMediaStream)
    337 #define IAudioStreamSample_GetSampleTimes(This,pStartTime,pEndTime,pCurrentTime) (This)->lpVtbl->GetSampleTimes(This,pStartTime,pEndTime,pCurrentTime)
    338 #define IAudioStreamSample_SetSampleTimes(This,pStartTime,pEndTime) (This)->lpVtbl->SetSampleTimes(This,pStartTime,pEndTime)
    339 #define IAudioStreamSample_Update(This,dwFlags,hEvent,pfnAPC,dwAPCData) (This)->lpVtbl->Update(This,dwFlags,hEvent,pfnAPC,dwAPCData)
    340 #define IAudioStreamSample_CompletionStatus(This,dwFlags,dwMilliseconds) (This)->lpVtbl->CompletionStatus(This,dwFlags,dwMilliseconds)
    341 /*** IAudioStreamSample methods ***/
    342 #define IAudioStreamSample_GetAudioData(This,ppAudio) (This)->lpVtbl->GetAudioData(This,ppAudio)
    343 #else
    344 /*** IUnknown methods ***/
    345 static FORCEINLINE HRESULT IAudioStreamSample_QueryInterface(IAudioStreamSample* This,REFIID riid,void **ppvObject) {
    346     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    347 }
    348 static FORCEINLINE ULONG IAudioStreamSample_AddRef(IAudioStreamSample* This) {
    349     return This->lpVtbl->AddRef(This);
    350 }
    351 static FORCEINLINE ULONG IAudioStreamSample_Release(IAudioStreamSample* This) {
    352     return This->lpVtbl->Release(This);
    353 }
    354 /*** IStreamSample methods ***/
    355 static FORCEINLINE HRESULT IAudioStreamSample_GetMediaStream(IAudioStreamSample* This,IMediaStream **ppMediaStream) {
    356     return This->lpVtbl->GetMediaStream(This,ppMediaStream);
    357 }
    358 static FORCEINLINE HRESULT IAudioStreamSample_GetSampleTimes(IAudioStreamSample* This,STREAM_TIME *pStartTime,STREAM_TIME *pEndTime,STREAM_TIME *pCurrentTime) {
    359     return This->lpVtbl->GetSampleTimes(This,pStartTime,pEndTime,pCurrentTime);
    360 }
    361 static FORCEINLINE HRESULT IAudioStreamSample_SetSampleTimes(IAudioStreamSample* This,const STREAM_TIME *pStartTime,const STREAM_TIME *pEndTime) {
    362     return This->lpVtbl->SetSampleTimes(This,pStartTime,pEndTime);
    363 }
    364 static FORCEINLINE HRESULT IAudioStreamSample_Update(IAudioStreamSample* This,DWORD dwFlags,HANDLE hEvent,PAPCFUNC pfnAPC,DWORD dwAPCData) {
    365     return This->lpVtbl->Update(This,dwFlags,hEvent,pfnAPC,dwAPCData);
    366 }
    367 static FORCEINLINE HRESULT IAudioStreamSample_CompletionStatus(IAudioStreamSample* This,DWORD dwFlags,DWORD dwMilliseconds) {
    368     return This->lpVtbl->CompletionStatus(This,dwFlags,dwMilliseconds);
    369 }
    370 /*** IAudioStreamSample methods ***/
    371 static FORCEINLINE HRESULT IAudioStreamSample_GetAudioData(IAudioStreamSample* This,IAudioData **ppAudio) {
    372     return This->lpVtbl->GetAudioData(This,ppAudio);
    373 }
    374 #endif
    375 #endif
    376 
    377 #endif
    378 
    379 HRESULT STDMETHODCALLTYPE IAudioStreamSample_GetAudioData_Proxy(
    380     IAudioStreamSample* This,
    381     IAudioData **ppAudio);
    382 void __RPC_STUB IAudioStreamSample_GetAudioData_Stub(
    383     IRpcStubBuffer* This,
    384     IRpcChannelBuffer* pRpcChannelBuffer,
    385     PRPC_MESSAGE pRpcMessage,
    386     DWORD* pdwStubPhase);
    387 
    388 #endif  /* __IAudioStreamSample_INTERFACE_DEFINED__ */
    389 
    390 /*****************************************************************************
    391  * IMemoryData interface
    392  */
    393 #ifndef __IMemoryData_INTERFACE_DEFINED__
    394 #define __IMemoryData_INTERFACE_DEFINED__
    395 
    396 DEFINE_GUID(IID_IMemoryData, 0x327fc560, 0xaf60, 0x11d0, 0x82,0x12, 0x00,0xc0,0x4f,0xc3,0x2c,0x45);
    397 #if defined(__cplusplus) && !defined(CINTERFACE)
    398 MIDL_INTERFACE("327fc560-af60-11d0-8212-00c04fc32c45")
    399 IMemoryData : public IUnknown
    400 {
    401     virtual HRESULT STDMETHODCALLTYPE SetBuffer(
    402         DWORD cbSize,
    403         BYTE *pbData,
    404         DWORD dwFlags) = 0;
    405 
    406     virtual HRESULT STDMETHODCALLTYPE GetInfo(
    407         DWORD *pdwLength,
    408         BYTE **ppbData,
    409         DWORD *pcbActualData) = 0;
    410 
    411     virtual HRESULT STDMETHODCALLTYPE SetActual(
    412         DWORD cbDataValid) = 0;
    413 
    414 };
    415 #ifdef __CRT_UUID_DECL
    416 __CRT_UUID_DECL(IMemoryData, 0x327fc560, 0xaf60, 0x11d0, 0x82,0x12, 0x00,0xc0,0x4f,0xc3,0x2c,0x45)
    417 #endif
    418 #else
    419 typedef struct IMemoryDataVtbl {
    420     BEGIN_INTERFACE
    421 
    422     /*** IUnknown methods ***/
    423     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    424         IMemoryData* This,
    425         REFIID riid,
    426         void **ppvObject);
    427 
    428     ULONG (STDMETHODCALLTYPE *AddRef)(
    429         IMemoryData* This);
    430 
    431     ULONG (STDMETHODCALLTYPE *Release)(
    432         IMemoryData* This);
    433 
    434     /*** IMemoryData methods ***/
    435     HRESULT (STDMETHODCALLTYPE *SetBuffer)(
    436         IMemoryData* This,
    437         DWORD cbSize,
    438         BYTE *pbData,
    439         DWORD dwFlags);
    440 
    441     HRESULT (STDMETHODCALLTYPE *GetInfo)(
    442         IMemoryData* This,
    443         DWORD *pdwLength,
    444         BYTE **ppbData,
    445         DWORD *pcbActualData);
    446 
    447     HRESULT (STDMETHODCALLTYPE *SetActual)(
    448         IMemoryData* This,
    449         DWORD cbDataValid);
    450 
    451     END_INTERFACE
    452 } IMemoryDataVtbl;
    453 interface IMemoryData {
    454     CONST_VTBL IMemoryDataVtbl* lpVtbl;
    455 };
    456 
    457 #ifdef COBJMACROS
    458 #ifndef WIDL_C_INLINE_WRAPPERS
    459 /*** IUnknown methods ***/
    460 #define IMemoryData_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    461 #define IMemoryData_AddRef(This) (This)->lpVtbl->AddRef(This)
    462 #define IMemoryData_Release(This) (This)->lpVtbl->Release(This)
    463 /*** IMemoryData methods ***/
    464 #define IMemoryData_SetBuffer(This,cbSize,pbData,dwFlags) (This)->lpVtbl->SetBuffer(This,cbSize,pbData,dwFlags)
    465 #define IMemoryData_GetInfo(This,pdwLength,ppbData,pcbActualData) (This)->lpVtbl->GetInfo(This,pdwLength,ppbData,pcbActualData)
    466 #define IMemoryData_SetActual(This,cbDataValid) (This)->lpVtbl->SetActual(This,cbDataValid)
    467 #else
    468 /*** IUnknown methods ***/
    469 static FORCEINLINE HRESULT IMemoryData_QueryInterface(IMemoryData* This,REFIID riid,void **ppvObject) {
    470     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    471 }
    472 static FORCEINLINE ULONG IMemoryData_AddRef(IMemoryData* This) {
    473     return This->lpVtbl->AddRef(This);
    474 }
    475 static FORCEINLINE ULONG IMemoryData_Release(IMemoryData* This) {
    476     return This->lpVtbl->Release(This);
    477 }
    478 /*** IMemoryData methods ***/
    479 static FORCEINLINE HRESULT IMemoryData_SetBuffer(IMemoryData* This,DWORD cbSize,BYTE *pbData,DWORD dwFlags) {
    480     return This->lpVtbl->SetBuffer(This,cbSize,pbData,dwFlags);
    481 }
    482 static FORCEINLINE HRESULT IMemoryData_GetInfo(IMemoryData* This,DWORD *pdwLength,BYTE **ppbData,DWORD *pcbActualData) {
    483     return This->lpVtbl->GetInfo(This,pdwLength,ppbData,pcbActualData);
    484 }
    485 static FORCEINLINE HRESULT IMemoryData_SetActual(IMemoryData* This,DWORD cbDataValid) {
    486     return This->lpVtbl->SetActual(This,cbDataValid);
    487 }
    488 #endif
    489 #endif
    490 
    491 #endif
    492 
    493 HRESULT STDMETHODCALLTYPE IMemoryData_SetBuffer_Proxy(
    494     IMemoryData* This,
    495     DWORD cbSize,
    496     BYTE *pbData,
    497     DWORD dwFlags);
    498 void __RPC_STUB IMemoryData_SetBuffer_Stub(
    499     IRpcStubBuffer* This,
    500     IRpcChannelBuffer* pRpcChannelBuffer,
    501     PRPC_MESSAGE pRpcMessage,
    502     DWORD* pdwStubPhase);
    503 HRESULT STDMETHODCALLTYPE IMemoryData_GetInfo_Proxy(
    504     IMemoryData* This,
    505     DWORD *pdwLength,
    506     BYTE **ppbData,
    507     DWORD *pcbActualData);
    508 void __RPC_STUB IMemoryData_GetInfo_Stub(
    509     IRpcStubBuffer* This,
    510     IRpcChannelBuffer* pRpcChannelBuffer,
    511     PRPC_MESSAGE pRpcMessage,
    512     DWORD* pdwStubPhase);
    513 HRESULT STDMETHODCALLTYPE IMemoryData_SetActual_Proxy(
    514     IMemoryData* This,
    515     DWORD cbDataValid);
    516 void __RPC_STUB IMemoryData_SetActual_Stub(
    517     IRpcStubBuffer* This,
    518     IRpcChannelBuffer* pRpcChannelBuffer,
    519     PRPC_MESSAGE pRpcMessage,
    520     DWORD* pdwStubPhase);
    521 
    522 #endif  /* __IMemoryData_INTERFACE_DEFINED__ */
    523 
    524 /*****************************************************************************
    525  * IAudioData interface
    526  */
    527 #ifndef __IAudioData_INTERFACE_DEFINED__
    528 #define __IAudioData_INTERFACE_DEFINED__
    529 
    530 DEFINE_GUID(IID_IAudioData, 0x54c719c0, 0xaf60, 0x11d0, 0x82,0x12, 0x00,0xc0,0x4f,0xc3,0x2c,0x45);
    531 #if defined(__cplusplus) && !defined(CINTERFACE)
    532 MIDL_INTERFACE("54c719c0-af60-11d0-8212-00c04fc32c45")
    533 IAudioData : public IMemoryData
    534 {
    535     virtual HRESULT STDMETHODCALLTYPE GetFormat(
    536         WAVEFORMATEX *pWaveFormatCurrent) = 0;
    537 
    538     virtual HRESULT STDMETHODCALLTYPE SetFormat(
    539         const WAVEFORMATEX *lpWaveFormat) = 0;
    540 
    541 };
    542 #ifdef __CRT_UUID_DECL
    543 __CRT_UUID_DECL(IAudioData, 0x54c719c0, 0xaf60, 0x11d0, 0x82,0x12, 0x00,0xc0,0x4f,0xc3,0x2c,0x45)
    544 #endif
    545 #else
    546 typedef struct IAudioDataVtbl {
    547     BEGIN_INTERFACE
    548 
    549     /*** IUnknown methods ***/
    550     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    551         IAudioData* This,
    552         REFIID riid,
    553         void **ppvObject);
    554 
    555     ULONG (STDMETHODCALLTYPE *AddRef)(
    556         IAudioData* This);
    557 
    558     ULONG (STDMETHODCALLTYPE *Release)(
    559         IAudioData* This);
    560 
    561     /*** IMemoryData methods ***/
    562     HRESULT (STDMETHODCALLTYPE *SetBuffer)(
    563         IAudioData* This,
    564         DWORD cbSize,
    565         BYTE *pbData,
    566         DWORD dwFlags);
    567 
    568     HRESULT (STDMETHODCALLTYPE *GetInfo)(
    569         IAudioData* This,
    570         DWORD *pdwLength,
    571         BYTE **ppbData,
    572         DWORD *pcbActualData);
    573 
    574     HRESULT (STDMETHODCALLTYPE *SetActual)(
    575         IAudioData* This,
    576         DWORD cbDataValid);
    577 
    578     /*** IAudioData methods ***/
    579     HRESULT (STDMETHODCALLTYPE *GetFormat)(
    580         IAudioData* This,
    581         WAVEFORMATEX *pWaveFormatCurrent);
    582 
    583     HRESULT (STDMETHODCALLTYPE *SetFormat)(
    584         IAudioData* This,
    585         const WAVEFORMATEX *lpWaveFormat);
    586 
    587     END_INTERFACE
    588 } IAudioDataVtbl;
    589 interface IAudioData {
    590     CONST_VTBL IAudioDataVtbl* lpVtbl;
    591 };
    592 
    593 #ifdef COBJMACROS
    594 #ifndef WIDL_C_INLINE_WRAPPERS
    595 /*** IUnknown methods ***/
    596 #define IAudioData_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    597 #define IAudioData_AddRef(This) (This)->lpVtbl->AddRef(This)
    598 #define IAudioData_Release(This) (This)->lpVtbl->Release(This)
    599 /*** IMemoryData methods ***/
    600 #define IAudioData_SetBuffer(This,cbSize,pbData,dwFlags) (This)->lpVtbl->SetBuffer(This,cbSize,pbData,dwFlags)
    601 #define IAudioData_GetInfo(This,pdwLength,ppbData,pcbActualData) (This)->lpVtbl->GetInfo(This,pdwLength,ppbData,pcbActualData)
    602 #define IAudioData_SetActual(This,cbDataValid) (This)->lpVtbl->SetActual(This,cbDataValid)
    603 /*** IAudioData methods ***/
    604 #define IAudioData_GetFormat(This,pWaveFormatCurrent) (This)->lpVtbl->GetFormat(This,pWaveFormatCurrent)
    605 #define IAudioData_SetFormat(This,lpWaveFormat) (This)->lpVtbl->SetFormat(This,lpWaveFormat)
    606 #else
    607 /*** IUnknown methods ***/
    608 static FORCEINLINE HRESULT IAudioData_QueryInterface(IAudioData* This,REFIID riid,void **ppvObject) {
    609     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    610 }
    611 static FORCEINLINE ULONG IAudioData_AddRef(IAudioData* This) {
    612     return This->lpVtbl->AddRef(This);
    613 }
    614 static FORCEINLINE ULONG IAudioData_Release(IAudioData* This) {
    615     return This->lpVtbl->Release(This);
    616 }
    617 /*** IMemoryData methods ***/
    618 static FORCEINLINE HRESULT IAudioData_SetBuffer(IAudioData* This,DWORD cbSize,BYTE *pbData,DWORD dwFlags) {
    619     return This->lpVtbl->SetBuffer(This,cbSize,pbData,dwFlags);
    620 }
    621 static FORCEINLINE HRESULT IAudioData_GetInfo(IAudioData* This,DWORD *pdwLength,BYTE **ppbData,DWORD *pcbActualData) {
    622     return This->lpVtbl->GetInfo(This,pdwLength,ppbData,pcbActualData);
    623 }
    624 static FORCEINLINE HRESULT IAudioData_SetActual(IAudioData* This,DWORD cbDataValid) {
    625     return This->lpVtbl->SetActual(This,cbDataValid);
    626 }
    627 /*** IAudioData methods ***/
    628 static FORCEINLINE HRESULT IAudioData_GetFormat(IAudioData* This,WAVEFORMATEX *pWaveFormatCurrent) {
    629     return This->lpVtbl->GetFormat(This,pWaveFormatCurrent);
    630 }
    631 static FORCEINLINE HRESULT IAudioData_SetFormat(IAudioData* This,const WAVEFORMATEX *lpWaveFormat) {
    632     return This->lpVtbl->SetFormat(This,lpWaveFormat);
    633 }
    634 #endif
    635 #endif
    636 
    637 #endif
    638 
    639 HRESULT STDMETHODCALLTYPE IAudioData_GetFormat_Proxy(
    640     IAudioData* This,
    641     WAVEFORMATEX *pWaveFormatCurrent);
    642 void __RPC_STUB IAudioData_GetFormat_Stub(
    643     IRpcStubBuffer* This,
    644     IRpcChannelBuffer* pRpcChannelBuffer,
    645     PRPC_MESSAGE pRpcMessage,
    646     DWORD* pdwStubPhase);
    647 HRESULT STDMETHODCALLTYPE IAudioData_SetFormat_Proxy(
    648     IAudioData* This,
    649     const WAVEFORMATEX *lpWaveFormat);
    650 void __RPC_STUB IAudioData_SetFormat_Stub(
    651     IRpcStubBuffer* This,
    652     IRpcChannelBuffer* pRpcChannelBuffer,
    653     PRPC_MESSAGE pRpcMessage,
    654     DWORD* pdwStubPhase);
    655 
    656 #endif  /* __IAudioData_INTERFACE_DEFINED__ */
    657 
    658 /* Begin additional prototypes for all interfaces */
    659 
    660 
    661 /* End additional prototypes */
    662 
    663 #ifdef __cplusplus
    664 }
    665 #endif
    666 
    667 #endif /* __austream_h__ */
    668