diff fuhtark_test/include/winapi/ipmsp.h @ 1500:91c8c3b7cbf0

add: futhark tests for generating vulkan api
author sam <sam@basx.dev>
date Wed, 26 Nov 2025 21:36:48 +0700
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/fuhtark_test/include/winapi/ipmsp.h	Wed Nov 26 21:36:48 2025 +0700
@@ -0,0 +1,532 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER within this package.
+ */
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+
+#include "rpc.h"
+#include "rpcndr.h"
+
+#ifndef __RPCNDR_H_VERSION__
+#error This stub requires an updated version of <rpcndr.h>
+#endif
+
+#ifndef COM_NO_WINDOWS_H
+#include "windows.h"
+#include "ole2.h"
+#endif
+
+#ifndef __ipmsp_h__
+#define __ipmsp_h__
+
+#ifndef __ITParticipant_FWD_DEFINED__
+#define __ITParticipant_FWD_DEFINED__
+typedef struct ITParticipant ITParticipant;
+#endif
+
+#ifndef __ITFormatControl_FWD_DEFINED__
+#define __ITFormatControl_FWD_DEFINED__
+typedef struct ITFormatControl ITFormatControl;
+#endif
+
+#ifndef __ITStreamQualityControl_FWD_DEFINED__
+#define __ITStreamQualityControl_FWD_DEFINED__
+typedef struct ITStreamQualityControl ITStreamQualityControl;
+#endif
+
+#ifndef __ITCallQualityControl_FWD_DEFINED__
+#define __ITCallQualityControl_FWD_DEFINED__
+typedef struct ITCallQualityControl ITCallQualityControl;
+#endif
+
+#ifndef __ITAudioDeviceControl_FWD_DEFINED__
+#define __ITAudioDeviceControl_FWD_DEFINED__
+typedef struct ITAudioDeviceControl ITAudioDeviceControl;
+#endif
+
+#ifndef __ITAudioSettings_FWD_DEFINED__
+#define __ITAudioSettings_FWD_DEFINED__
+typedef struct ITAudioSettings ITAudioSettings;
+#endif
+
+#ifndef __ITQOSApplicationID_FWD_DEFINED__
+#define __ITQOSApplicationID_FWD_DEFINED__
+typedef struct ITQOSApplicationID ITQOSApplicationID;
+#endif
+
+#include "tapi3if.h"
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+#ifndef __MIDL_user_allocate_free_DEFINED__
+#define __MIDL_user_allocate_free_DEFINED__
+  void *__RPC_API MIDL_user_allocate(size_t);
+  void __RPC_API MIDL_user_free(void *);
+#endif
+
+#define MAX_PARTICIPANT_TYPED_INFO_LENGTH (256)
+
+#define MAX_QOS_ID_LEN (128)
+
+  typedef enum PARTICIPANT_TYPED_INFO {
+    PTI_CANONICALNAME = 0,PTI_NAME,PTI_EMAILADDRESS,PTI_PHONENUMBER,
+    PTI_LOCATION,PTI_TOOL,PTI_NOTES,PTI_PRIVATE
+  } PARTICIPANT_TYPED_INFO;
+
+  typedef enum PARTICIPANT_EVENT {
+    PE_NEW_PARTICIPANT = 0,PE_INFO_CHANGE,PE_PARTICIPANT_LEAVE,
+    PE_NEW_SUBSTREAM,PE_SUBSTREAM_REMOVED,PE_SUBSTREAM_MAPPED,
+    PE_SUBSTREAM_UNMAPPED,PE_PARTICIPANT_TIMEOUT,PE_PARTICIPANT_RECOVERED,
+    PE_PARTICIPANT_ACTIVE,PE_PARTICIPANT_INACTIVE,PE_LOCAL_TALKING,
+    PE_LOCAL_SILENT
+  } PARTICIPANT_EVENT;
+
+  extern RPC_IF_HANDLE __MIDL_itf_ipmsp_0000_v0_0_c_ifspec;
+  extern RPC_IF_HANDLE __MIDL_itf_ipmsp_0000_v0_0_s_ifspec;
+
+#ifndef __ITParticipant_INTERFACE_DEFINED__
+#define __ITParticipant_INTERFACE_DEFINED__
+  EXTERN_C const IID IID_ITParticipant;
+#if defined(__cplusplus) && !defined(CINTERFACE)
+  struct ITParticipant : public IDispatch {
+  public:
+    virtual HRESULT WINAPI get_ParticipantTypedInfo(PARTICIPANT_TYPED_INFO InfoType,BSTR *ppInfo) = 0;
+    virtual HRESULT WINAPI get_MediaTypes(long *plMediaType) = 0;
+    virtual HRESULT WINAPI put_Status(ITStream *pITStream,VARIANT_BOOL fEnable) = 0;
+    virtual HRESULT WINAPI get_Status(ITStream *pITStream,VARIANT_BOOL *pStatus) = 0;
+    virtual HRESULT WINAPI get_Streams(VARIANT *pVariant) = 0;
+    virtual HRESULT WINAPI EnumerateStreams(IEnumStream **ppEnumStream) = 0;
+  };
+#else
+  typedef struct ITParticipantVtbl {
+    BEGIN_INTERFACE
+      HRESULT (WINAPI *QueryInterface)(ITParticipant *This,REFIID riid,void **ppvObject);
+      ULONG (WINAPI *AddRef)(ITParticipant *This);
+      ULONG (WINAPI *Release)(ITParticipant *This);
+      HRESULT (WINAPI *GetTypeInfoCount)(ITParticipant *This,UINT *pctinfo);
+      HRESULT (WINAPI *GetTypeInfo)(ITParticipant *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
+      HRESULT (WINAPI *GetIDsOfNames)(ITParticipant *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
+      HRESULT (WINAPI *Invoke)(ITParticipant *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
+      HRESULT (WINAPI *get_ParticipantTypedInfo)(ITParticipant *This,PARTICIPANT_TYPED_INFO InfoType,BSTR *ppInfo);
+      HRESULT (WINAPI *get_MediaTypes)(ITParticipant *This,long *plMediaType);
+      HRESULT (WINAPI *put_Status)(ITParticipant *This,ITStream *pITStream,VARIANT_BOOL fEnable);
+      HRESULT (WINAPI *get_Status)(ITParticipant *This,ITStream *pITStream,VARIANT_BOOL *pStatus);
+      HRESULT (WINAPI *get_Streams)(ITParticipant *This,VARIANT *pVariant);
+      HRESULT (WINAPI *EnumerateStreams)(ITParticipant *This,IEnumStream **ppEnumStream);
+    END_INTERFACE
+  } ITParticipantVtbl;
+  struct ITParticipant {
+    CONST_VTBL struct ITParticipantVtbl *lpVtbl;
+  };
+#ifdef COBJMACROS
+#define ITParticipant_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ITParticipant_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ITParticipant_Release(This) (This)->lpVtbl->Release(This)
+#define ITParticipant_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define ITParticipant_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define ITParticipant_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define ITParticipant_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+#define ITParticipant_get_ParticipantTypedInfo(This,InfoType,ppInfo) (This)->lpVtbl->get_ParticipantTypedInfo(This,InfoType,ppInfo)
+#define ITParticipant_get_MediaTypes(This,plMediaType) (This)->lpVtbl->get_MediaTypes(This,plMediaType)
+#define ITParticipant_put_Status(This,pITStream,fEnable) (This)->lpVtbl->put_Status(This,pITStream,fEnable)
+#define ITParticipant_get_Status(This,pITStream,pStatus) (This)->lpVtbl->get_Status(This,pITStream,pStatus)
+#define ITParticipant_get_Streams(This,pVariant) (This)->lpVtbl->get_Streams(This,pVariant)
+#define ITParticipant_EnumerateStreams(This,ppEnumStream) (This)->lpVtbl->EnumerateStreams(This,ppEnumStream)
+#endif
+#endif
+  HRESULT WINAPI ITParticipant_get_ParticipantTypedInfo_Proxy(ITParticipant *This,PARTICIPANT_TYPED_INFO InfoType,BSTR *ppInfo);
+  void __RPC_STUB ITParticipant_get_ParticipantTypedInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+  HRESULT WINAPI ITParticipant_get_MediaTypes_Proxy(ITParticipant *This,long *plMediaType);
+  void __RPC_STUB ITParticipant_get_MediaTypes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+  HRESULT WINAPI ITParticipant_put_Status_Proxy(ITParticipant *This,ITStream *pITStream,VARIANT_BOOL fEnable);
+  void __RPC_STUB ITParticipant_put_Status_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+  HRESULT WINAPI ITParticipant_get_Status_Proxy(ITParticipant *This,ITStream *pITStream,VARIANT_BOOL *pStatus);
+  void __RPC_STUB ITParticipant_get_Status_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+  HRESULT WINAPI ITParticipant_get_Streams_Proxy(ITParticipant *This,VARIANT *pVariant);
+  void __RPC_STUB ITParticipant_get_Streams_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+  HRESULT WINAPI ITParticipant_EnumerateStreams_Proxy(ITParticipant *This,IEnumStream **ppEnumStream);
+  void __RPC_STUB ITParticipant_EnumerateStreams_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+#endif
+
+#ifndef STREAM_INTERFACES_DEFINED
+#define STREAM_INTERFACES_DEFINED
+#define MAX_DESCRIPTION_LEN (256)
+  typedef struct _TAPI_AUDIO_STREAM_CONFIG_CAPS {
+    WCHAR Description[256 ];
+    ULONG MinimumChannels;
+    ULONG MaximumChannels;
+    ULONG ChannelsGranularity;
+    ULONG MinimumBitsPerSample;
+    ULONG MaximumBitsPerSample;
+    ULONG BitsPerSampleGranularity;
+    ULONG MinimumSampleFrequency;
+    ULONG MaximumSampleFrequency;
+    ULONG SampleFrequencyGranularity;
+    ULONG MinimumAvgBytesPerSec;
+    ULONG MaximumAvgBytesPerSec;
+    ULONG AvgBytesPerSecGranularity;
+  } TAPI_AUDIO_STREAM_CONFIG_CAPS;
+
+  typedef struct _TAPI_AUDIO_STREAM_CONFIG_CAPS *PTAPI_AUDIO_STREAM_CONFIG_CAPS;
+
+  typedef struct _TAPI_VIDEO_STREAM_CONFIG_CAPS {
+    WCHAR Description[256 ];
+    ULONG VideoStandard;
+    SIZE InputSize;
+    SIZE MinCroppingSize;
+    SIZE MaxCroppingSize;
+    int CropGranularityX;
+    int CropGranularityY;
+    int CropAlignX;
+    int CropAlignY;
+    SIZE MinOutputSize;
+    SIZE MaxOutputSize;
+    int OutputGranularityX;
+    int OutputGranularityY;
+    int StretchTapsX;
+    int StretchTapsY;
+    int ShrinkTapsX;
+    int ShrinkTapsY;
+    LONGLONG MinFrameInterval;
+    LONGLONG MaxFrameInterval;
+    LONG MinBitsPerSecond;
+    LONG MaxBitsPerSecond;
+  } TAPI_VIDEO_STREAM_CONFIG_CAPS;
+
+  typedef struct _TAPI_VIDEO_STREAM_CONFIG_CAPS *PTAPI_VIDEO_STREAM_CONFIG_CAPS;
+
+  typedef enum tagStreamConfigCapsType {
+    AudioStreamConfigCaps = 0,VideoStreamConfigCaps = AudioStreamConfigCaps + 1
+  } StreamConfigCapsType;
+
+  typedef struct tagTAPI_STREAM_CONFIG_CAPS {
+    StreamConfigCapsType CapsType;
+    __MINGW_EXTENSION union {
+      TAPI_VIDEO_STREAM_CONFIG_CAPS VideoCap;
+      TAPI_AUDIO_STREAM_CONFIG_CAPS AudioCap;
+    };
+  } TAPI_STREAM_CONFIG_CAPS;
+
+  typedef struct tagTAPI_STREAM_CONFIG_CAPS *PTAPI_STREAM_CONFIG_CAPS;
+
+  typedef enum tagTAPIControlFlags {
+    TAPIControl_Flags_None = 0,TAPIControl_Flags_Auto = 0x1,TAPIControl_Flags_Manual = 0x2
+  } TAPIControlFlags;
+
+  extern RPC_IF_HANDLE __MIDL_itf_ipmsp_0502_v0_0_c_ifspec;
+  extern RPC_IF_HANDLE __MIDL_itf_ipmsp_0502_v0_0_s_ifspec;
+
+#ifndef __ITFormatControl_INTERFACE_DEFINED__
+#define __ITFormatControl_INTERFACE_DEFINED__
+  EXTERN_C const IID IID_ITFormatControl;
+#if defined(__cplusplus) && !defined(CINTERFACE)
+  struct ITFormatControl : public IUnknown {
+  public:
+    virtual HRESULT WINAPI GetCurrentFormat(AM_MEDIA_TYPE **ppMediaType) = 0;
+    virtual HRESULT WINAPI ReleaseFormat(AM_MEDIA_TYPE *pMediaType) = 0;
+    virtual HRESULT WINAPI GetNumberOfCapabilities(DWORD *pdwCount) = 0;
+    virtual HRESULT WINAPI GetStreamCaps(DWORD dwIndex,AM_MEDIA_TYPE **ppMediaType,TAPI_STREAM_CONFIG_CAPS *pStreamConfigCaps,WINBOOL *pfEnabled) = 0;
+    virtual HRESULT WINAPI ReOrderCapabilities(DWORD *pdwIndices,WINBOOL *pfEnabled,WINBOOL *pfPublicize,DWORD dwNumIndices) = 0;
+  };
+#else
+  typedef struct ITFormatControlVtbl {
+    BEGIN_INTERFACE
+      HRESULT (WINAPI *QueryInterface)(ITFormatControl *This,REFIID riid,void **ppvObject);
+      ULONG (WINAPI *AddRef)(ITFormatControl *This);
+      ULONG (WINAPI *Release)(ITFormatControl *This);
+      HRESULT (WINAPI *GetCurrentFormat)(ITFormatControl *This,AM_MEDIA_TYPE **ppMediaType);
+      HRESULT (WINAPI *ReleaseFormat)(ITFormatControl *This,AM_MEDIA_TYPE *pMediaType);
+      HRESULT (WINAPI *GetNumberOfCapabilities)(ITFormatControl *This,DWORD *pdwCount);
+      HRESULT (WINAPI *GetStreamCaps)(ITFormatControl *This,DWORD dwIndex,AM_MEDIA_TYPE **ppMediaType,TAPI_STREAM_CONFIG_CAPS *pStreamConfigCaps,WINBOOL *pfEnabled);
+      HRESULT (WINAPI *ReOrderCapabilities)(ITFormatControl *This,DWORD *pdwIndices,WINBOOL *pfEnabled,WINBOOL *pfPublicize,DWORD dwNumIndices);
+    END_INTERFACE
+  } ITFormatControlVtbl;
+  struct ITFormatControl {
+    CONST_VTBL struct ITFormatControlVtbl *lpVtbl;
+  };
+#ifdef COBJMACROS
+#define ITFormatControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ITFormatControl_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ITFormatControl_Release(This) (This)->lpVtbl->Release(This)
+#define ITFormatControl_GetCurrentFormat(This,ppMediaType) (This)->lpVtbl->GetCurrentFormat(This,ppMediaType)
+#define ITFormatControl_ReleaseFormat(This,pMediaType) (This)->lpVtbl->ReleaseFormat(This,pMediaType)
+#define ITFormatControl_GetNumberOfCapabilities(This,pdwCount) (This)->lpVtbl->GetNumberOfCapabilities(This,pdwCount)
+#define ITFormatControl_GetStreamCaps(This,dwIndex,ppMediaType,pStreamConfigCaps,pfEnabled) (This)->lpVtbl->GetStreamCaps(This,dwIndex,ppMediaType,pStreamConfigCaps,pfEnabled)
+#define ITFormatControl_ReOrderCapabilities(This,pdwIndices,pfEnabled,pfPublicize,dwNumIndices) (This)->lpVtbl->ReOrderCapabilities(This,pdwIndices,pfEnabled,pfPublicize,dwNumIndices)
+#endif
+#endif
+  HRESULT WINAPI ITFormatControl_GetCurrentFormat_Proxy(ITFormatControl *This,AM_MEDIA_TYPE **ppMediaType);
+  void __RPC_STUB ITFormatControl_GetCurrentFormat_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+  HRESULT WINAPI ITFormatControl_ReleaseFormat_Proxy(ITFormatControl *This,AM_MEDIA_TYPE *pMediaType);
+  void __RPC_STUB ITFormatControl_ReleaseFormat_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+  HRESULT WINAPI ITFormatControl_GetNumberOfCapabilities_Proxy(ITFormatControl *This,DWORD *pdwCount);
+  void __RPC_STUB ITFormatControl_GetNumberOfCapabilities_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+  HRESULT WINAPI ITFormatControl_GetStreamCaps_Proxy(ITFormatControl *This,DWORD dwIndex,AM_MEDIA_TYPE **ppMediaType,TAPI_STREAM_CONFIG_CAPS *pStreamConfigCaps,WINBOOL *pfEnabled);
+  void __RPC_STUB ITFormatControl_GetStreamCaps_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+  HRESULT WINAPI ITFormatControl_ReOrderCapabilities_Proxy(ITFormatControl *This,DWORD *pdwIndices,WINBOOL *pfEnabled,WINBOOL *pfPublicize,DWORD dwNumIndices);
+  void __RPC_STUB ITFormatControl_ReOrderCapabilities_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+#endif
+
+  typedef enum tagStreamQualityProperty {
+    StreamQuality_MaxBitrate = 0,StreamQuality_CurrBitrate,StreamQuality_MinFrameInterval,
+    StreamQuality_AvgFrameInterval
+  } StreamQualityProperty;
+
+  extern RPC_IF_HANDLE __MIDL_itf_ipmsp_0503_v0_0_c_ifspec;
+  extern RPC_IF_HANDLE __MIDL_itf_ipmsp_0503_v0_0_s_ifspec;
+
+#ifndef __ITStreamQualityControl_INTERFACE_DEFINED__
+#define __ITStreamQualityControl_INTERFACE_DEFINED__
+  EXTERN_C const IID IID_ITStreamQualityControl;
+#if defined(__cplusplus) && !defined(CINTERFACE)
+  struct ITStreamQualityControl : public IUnknown {
+  public:
+    virtual HRESULT WINAPI GetRange(StreamQualityProperty Property,long *plMin,long *plMax,long *plSteppingDelta,long *plDefault,TAPIControlFlags *plFlags) = 0;
+    virtual HRESULT WINAPI Get(StreamQualityProperty Property,long *plValue,TAPIControlFlags *plFlags) = 0;
+    virtual HRESULT WINAPI Set(StreamQualityProperty Property,long lValue,TAPIControlFlags lFlags) = 0;
+  };
+#else
+  typedef struct ITStreamQualityControlVtbl {
+    BEGIN_INTERFACE
+      HRESULT (WINAPI *QueryInterface)(ITStreamQualityControl *This,REFIID riid,void **ppvObject);
+      ULONG (WINAPI *AddRef)(ITStreamQualityControl *This);
+      ULONG (WINAPI *Release)(ITStreamQualityControl *This);
+      HRESULT (WINAPI *GetRange)(ITStreamQualityControl *This,StreamQualityProperty Property,long *plMin,long *plMax,long *plSteppingDelta,long *plDefault,TAPIControlFlags *plFlags);
+      HRESULT (WINAPI *Get)(ITStreamQualityControl *This,StreamQualityProperty Property,long *plValue,TAPIControlFlags *plFlags);
+      HRESULT (WINAPI *Set)(ITStreamQualityControl *This,StreamQualityProperty Property,long lValue,TAPIControlFlags lFlags);
+    END_INTERFACE
+  } ITStreamQualityControlVtbl;
+  struct ITStreamQualityControl {
+    CONST_VTBL struct ITStreamQualityControlVtbl *lpVtbl;
+  };
+#ifdef COBJMACROS
+#define ITStreamQualityControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ITStreamQualityControl_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ITStreamQualityControl_Release(This) (This)->lpVtbl->Release(This)
+#define ITStreamQualityControl_GetRange(This,Property,plMin,plMax,plSteppingDelta,plDefault,plFlags) (This)->lpVtbl->GetRange(This,Property,plMin,plMax,plSteppingDelta,plDefault,plFlags)
+#define ITStreamQualityControl_Get(This,Property,plValue,plFlags) (This)->lpVtbl->Get(This,Property,plValue,plFlags)
+#define ITStreamQualityControl_Set(This,Property,lValue,lFlags) (This)->lpVtbl->Set(This,Property,lValue,lFlags)
+#endif
+#endif
+  HRESULT WINAPI ITStreamQualityControl_GetRange_Proxy(ITStreamQualityControl *This,StreamQualityProperty Property,long *plMin,long *plMax,long *plSteppingDelta,long *plDefault,TAPIControlFlags *plFlags);
+  void __RPC_STUB ITStreamQualityControl_GetRange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+  HRESULT WINAPI ITStreamQualityControl_Get_Proxy(ITStreamQualityControl *This,StreamQualityProperty Property,long *plValue,TAPIControlFlags *plFlags);
+  void __RPC_STUB ITStreamQualityControl_Get_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+  HRESULT WINAPI ITStreamQualityControl_Set_Proxy(ITStreamQualityControl *This,StreamQualityProperty Property,long lValue,TAPIControlFlags lFlags);
+  void __RPC_STUB ITStreamQualityControl_Set_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+#endif
+
+  typedef enum tagCallQualityProperty {
+    CallQuality_ControlInterval = 0,CallQuality_ConfBitrate,CallQuality_MaxInputBitrate,
+    CallQuality_CurrInputBitrate,CallQuality_MaxOutputBitrate,
+    CallQuality_CurrOutputBitrate,CallQuality_MaxCPULoad,CallQuality_CurrCPULoad
+  } CallQualityProperty;
+
+  extern RPC_IF_HANDLE __MIDL_itf_ipmsp_0504_v0_0_c_ifspec;
+  extern RPC_IF_HANDLE __MIDL_itf_ipmsp_0504_v0_0_s_ifspec;
+
+#ifndef __ITCallQualityControl_INTERFACE_DEFINED__
+#define __ITCallQualityControl_INTERFACE_DEFINED__
+  EXTERN_C const IID IID_ITCallQualityControl;
+#if defined(__cplusplus) && !defined(CINTERFACE)
+  struct ITCallQualityControl : public IUnknown {
+  public:
+    virtual HRESULT WINAPI GetRange(CallQualityProperty Property,long *plMin,long *plMax,long *plSteppingDelta,long *plDefault,TAPIControlFlags *plFlags) = 0;
+    virtual HRESULT WINAPI Get(CallQualityProperty Property,long *plValue,TAPIControlFlags *plFlags) = 0;
+    virtual HRESULT WINAPI Set(CallQualityProperty Property,long lValue,TAPIControlFlags lFlags) = 0;
+  };
+#else
+  typedef struct ITCallQualityControlVtbl {
+    BEGIN_INTERFACE
+      HRESULT (WINAPI *QueryInterface)(ITCallQualityControl *This,REFIID riid,void **ppvObject);
+      ULONG (WINAPI *AddRef)(ITCallQualityControl *This);
+      ULONG (WINAPI *Release)(ITCallQualityControl *This);
+      HRESULT (WINAPI *GetRange)(ITCallQualityControl *This,CallQualityProperty Property,long *plMin,long *plMax,long *plSteppingDelta,long *plDefault,TAPIControlFlags *plFlags);
+      HRESULT (WINAPI *Get)(ITCallQualityControl *This,CallQualityProperty Property,long *plValue,TAPIControlFlags *plFlags);
+      HRESULT (WINAPI *Set)(ITCallQualityControl *This,CallQualityProperty Property,long lValue,TAPIControlFlags lFlags);
+    END_INTERFACE
+  } ITCallQualityControlVtbl;
+  struct ITCallQualityControl {
+    CONST_VTBL struct ITCallQualityControlVtbl *lpVtbl;
+  };
+#ifdef COBJMACROS
+#define ITCallQualityControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ITCallQualityControl_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ITCallQualityControl_Release(This) (This)->lpVtbl->Release(This)
+#define ITCallQualityControl_GetRange(This,Property,plMin,plMax,plSteppingDelta,plDefault,plFlags) (This)->lpVtbl->GetRange(This,Property,plMin,plMax,plSteppingDelta,plDefault,plFlags)
+#define ITCallQualityControl_Get(This,Property,plValue,plFlags) (This)->lpVtbl->Get(This,Property,plValue,plFlags)
+#define ITCallQualityControl_Set(This,Property,lValue,lFlags) (This)->lpVtbl->Set(This,Property,lValue,lFlags)
+#endif
+#endif
+  HRESULT WINAPI ITCallQualityControl_GetRange_Proxy(ITCallQualityControl *This,CallQualityProperty Property,long *plMin,long *plMax,long *plSteppingDelta,long *plDefault,TAPIControlFlags *plFlags);
+  void __RPC_STUB ITCallQualityControl_GetRange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+  HRESULT WINAPI ITCallQualityControl_Get_Proxy(ITCallQualityControl *This,CallQualityProperty Property,long *plValue,TAPIControlFlags *plFlags);
+  void __RPC_STUB ITCallQualityControl_Get_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+  HRESULT WINAPI ITCallQualityControl_Set_Proxy(ITCallQualityControl *This,CallQualityProperty Property,long lValue,TAPIControlFlags lFlags);
+  void __RPC_STUB ITCallQualityControl_Set_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+#endif
+
+  typedef enum tagAudioDeviceProperty {
+    AudioDevice_DuplexMode = 0,AudioDevice_AutomaticGainControl,
+    AudioDevice_AcousticEchoCancellation
+  } AudioDeviceProperty;
+
+  extern RPC_IF_HANDLE __MIDL_itf_ipmsp_0505_v0_0_c_ifspec;
+  extern RPC_IF_HANDLE __MIDL_itf_ipmsp_0505_v0_0_s_ifspec;
+
+#ifndef __ITAudioDeviceControl_INTERFACE_DEFINED__
+#define __ITAudioDeviceControl_INTERFACE_DEFINED__
+  EXTERN_C const IID IID_ITAudioDeviceControl;
+#if defined(__cplusplus) && !defined(CINTERFACE)
+  struct ITAudioDeviceControl : public IUnknown {
+  public:
+    virtual HRESULT WINAPI GetRange(AudioDeviceProperty Property,long *plMin,long *plMax,long *plSteppingDelta,long *plDefault,TAPIControlFlags *plFlags) = 0;
+    virtual HRESULT WINAPI Get(AudioDeviceProperty Property,long *plValue,TAPIControlFlags *plFlags) = 0;
+    virtual HRESULT WINAPI Set(AudioDeviceProperty Property,long lValue,TAPIControlFlags lFlags) = 0;
+  };
+#else
+  typedef struct ITAudioDeviceControlVtbl {
+    BEGIN_INTERFACE
+      HRESULT (WINAPI *QueryInterface)(ITAudioDeviceControl *This,REFIID riid,void **ppvObject);
+      ULONG (WINAPI *AddRef)(ITAudioDeviceControl *This);
+      ULONG (WINAPI *Release)(ITAudioDeviceControl *This);
+      HRESULT (WINAPI *GetRange)(ITAudioDeviceControl *This,AudioDeviceProperty Property,long *plMin,long *plMax,long *plSteppingDelta,long *plDefault,TAPIControlFlags *plFlags);
+      HRESULT (WINAPI *Get)(ITAudioDeviceControl *This,AudioDeviceProperty Property,long *plValue,TAPIControlFlags *plFlags);
+      HRESULT (WINAPI *Set)(ITAudioDeviceControl *This,AudioDeviceProperty Property,long lValue,TAPIControlFlags lFlags);
+    END_INTERFACE
+  } ITAudioDeviceControlVtbl;
+  struct ITAudioDeviceControl {
+    CONST_VTBL struct ITAudioDeviceControlVtbl *lpVtbl;
+  };
+#ifdef COBJMACROS
+#define ITAudioDeviceControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ITAudioDeviceControl_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ITAudioDeviceControl_Release(This) (This)->lpVtbl->Release(This)
+#define ITAudioDeviceControl_GetRange(This,Property,plMin,plMax,plSteppingDelta,plDefault,plFlags) (This)->lpVtbl->GetRange(This,Property,plMin,plMax,plSteppingDelta,plDefault,plFlags)
+#define ITAudioDeviceControl_Get(This,Property,plValue,plFlags) (This)->lpVtbl->Get(This,Property,plValue,plFlags)
+#define ITAudioDeviceControl_Set(This,Property,lValue,lFlags) (This)->lpVtbl->Set(This,Property,lValue,lFlags)
+#endif
+#endif
+  HRESULT WINAPI ITAudioDeviceControl_GetRange_Proxy(ITAudioDeviceControl *This,AudioDeviceProperty Property,long *plMin,long *plMax,long *plSteppingDelta,long *plDefault,TAPIControlFlags *plFlags);
+  void __RPC_STUB ITAudioDeviceControl_GetRange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+  HRESULT WINAPI ITAudioDeviceControl_Get_Proxy(ITAudioDeviceControl *This,AudioDeviceProperty Property,long *plValue,TAPIControlFlags *plFlags);
+  void __RPC_STUB ITAudioDeviceControl_Get_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+  HRESULT WINAPI ITAudioDeviceControl_Set_Proxy(ITAudioDeviceControl *This,AudioDeviceProperty Property,long lValue,TAPIControlFlags lFlags);
+  void __RPC_STUB ITAudioDeviceControl_Set_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+#endif
+
+  typedef enum tagAudioSettingsProperty {
+    AudioSettings_SignalLevel = 0,AudioSettings_SilenceThreshold,
+    AudioSettings_Volume,AudioSettings_Balance,AudioSettings_Loudness,
+    AudioSettings_Treble,AudioSettings_Bass,AudioSettings_Mono
+  } AudioSettingsProperty;
+
+  extern RPC_IF_HANDLE __MIDL_itf_ipmsp_0506_v0_0_c_ifspec;
+  extern RPC_IF_HANDLE __MIDL_itf_ipmsp_0506_v0_0_s_ifspec;
+
+#ifndef __ITAudioSettings_INTERFACE_DEFINED__
+#define __ITAudioSettings_INTERFACE_DEFINED__
+  EXTERN_C const IID IID_ITAudioSettings;
+#if defined(__cplusplus) && !defined(CINTERFACE)
+  struct ITAudioSettings : public IUnknown {
+  public:
+    virtual HRESULT WINAPI GetRange(AudioSettingsProperty Property,long *plMin,long *plMax,long *plSteppingDelta,long *plDefault,TAPIControlFlags *plFlags) = 0;
+    virtual HRESULT WINAPI Get(AudioSettingsProperty Property,long *plValue,TAPIControlFlags *plFlags) = 0;
+    virtual HRESULT WINAPI Set(AudioSettingsProperty Property,long lValue,TAPIControlFlags lFlags) = 0;
+  };
+#else
+  typedef struct ITAudioSettingsVtbl {
+    BEGIN_INTERFACE
+      HRESULT (WINAPI *QueryInterface)(ITAudioSettings *This,REFIID riid,void **ppvObject);
+      ULONG (WINAPI *AddRef)(ITAudioSettings *This);
+      ULONG (WINAPI *Release)(ITAudioSettings *This);
+      HRESULT (WINAPI *GetRange)(ITAudioSettings *This,AudioSettingsProperty Property,long *plMin,long *plMax,long *plSteppingDelta,long *plDefault,TAPIControlFlags *plFlags);
+      HRESULT (WINAPI *Get)(ITAudioSettings *This,AudioSettingsProperty Property,long *plValue,TAPIControlFlags *plFlags);
+      HRESULT (WINAPI *Set)(ITAudioSettings *This,AudioSettingsProperty Property,long lValue,TAPIControlFlags lFlags);
+    END_INTERFACE
+  } ITAudioSettingsVtbl;
+  struct ITAudioSettings {
+    CONST_VTBL struct ITAudioSettingsVtbl *lpVtbl;
+  };
+#ifdef COBJMACROS
+#define ITAudioSettings_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ITAudioSettings_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ITAudioSettings_Release(This) (This)->lpVtbl->Release(This)
+#define ITAudioSettings_GetRange(This,Property,plMin,plMax,plSteppingDelta,plDefault,plFlags) (This)->lpVtbl->GetRange(This,Property,plMin,plMax,plSteppingDelta,plDefault,plFlags)
+#define ITAudioSettings_Get(This,Property,plValue,plFlags) (This)->lpVtbl->Get(This,Property,plValue,plFlags)
+#define ITAudioSettings_Set(This,Property,lValue,lFlags) (This)->lpVtbl->Set(This,Property,lValue,lFlags)
+#endif
+#endif
+  HRESULT WINAPI ITAudioSettings_GetRange_Proxy(ITAudioSettings *This,AudioSettingsProperty Property,long *plMin,long *plMax,long *plSteppingDelta,long *plDefault,TAPIControlFlags *plFlags);
+  void __RPC_STUB ITAudioSettings_GetRange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+  HRESULT WINAPI ITAudioSettings_Get_Proxy(ITAudioSettings *This,AudioSettingsProperty Property,long *plValue,TAPIControlFlags *plFlags);
+  void __RPC_STUB ITAudioSettings_Get_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+  HRESULT WINAPI ITAudioSettings_Set_Proxy(ITAudioSettings *This,AudioSettingsProperty Property,long lValue,TAPIControlFlags lFlags);
+  void __RPC_STUB ITAudioSettings_Set_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+#endif
+
+#ifndef __ITQOSApplicationID_INTERFACE_DEFINED__
+#define __ITQOSApplicationID_INTERFACE_DEFINED__
+  EXTERN_C const IID IID_ITQOSApplicationID;
+#if defined(__cplusplus) && !defined(CINTERFACE)
+  struct ITQOSApplicationID : public IDispatch {
+  public:
+    virtual HRESULT WINAPI SetQOSApplicationID(BSTR pApplicationID,BSTR pApplicationGUID,BSTR pSubIDs) = 0;
+  };
+#else
+  typedef struct ITQOSApplicationIDVtbl {
+    BEGIN_INTERFACE
+      HRESULT (WINAPI *QueryInterface)(ITQOSApplicationID *This,REFIID riid,void **ppvObject);
+      ULONG (WINAPI *AddRef)(ITQOSApplicationID *This);
+      ULONG (WINAPI *Release)(ITQOSApplicationID *This);
+      HRESULT (WINAPI *GetTypeInfoCount)(ITQOSApplicationID *This,UINT *pctinfo);
+      HRESULT (WINAPI *GetTypeInfo)(ITQOSApplicationID *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
+      HRESULT (WINAPI *GetIDsOfNames)(ITQOSApplicationID *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
+      HRESULT (WINAPI *Invoke)(ITQOSApplicationID *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
+      HRESULT (WINAPI *SetQOSApplicationID)(ITQOSApplicationID *This,BSTR pApplicationID,BSTR pApplicationGUID,BSTR pSubIDs);
+    END_INTERFACE
+  } ITQOSApplicationIDVtbl;
+  struct ITQOSApplicationID {
+    CONST_VTBL struct ITQOSApplicationIDVtbl *lpVtbl;
+  };
+#ifdef COBJMACROS
+#define ITQOSApplicationID_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ITQOSApplicationID_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ITQOSApplicationID_Release(This) (This)->lpVtbl->Release(This)
+#define ITQOSApplicationID_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define ITQOSApplicationID_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define ITQOSApplicationID_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define ITQOSApplicationID_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+#define ITQOSApplicationID_SetQOSApplicationID(This,pApplicationID,pApplicationGUID,pSubIDs) (This)->lpVtbl->SetQOSApplicationID(This,pApplicationID,pApplicationGUID,pSubIDs)
+#endif
+#endif
+  HRESULT WINAPI ITQOSApplicationID_SetQOSApplicationID_Proxy(ITQOSApplicationID *This,BSTR pApplicationID,BSTR pApplicationGUID,BSTR pSubIDs);
+  void __RPC_STUB ITQOSApplicationID_SetQOSApplicationID_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+#endif
+#endif
+
+#ifndef RTP_MEDIATYPE_DEFINED
+#define RTP_MEDIATYPE_DEFINED
+  struct MEDIATYPE_RTP_Single_Stream;
+#endif
+  extern RPC_IF_HANDLE __MIDL_itf_ipmsp_0508_v0_0_c_ifspec;
+  extern RPC_IF_HANDLE __MIDL_itf_ipmsp_0508_v0_0_s_ifspec;
+
+  unsigned long __RPC_API BSTR_UserSize(unsigned long *,unsigned long,BSTR *);
+  unsigned char *__RPC_API BSTR_UserMarshal(unsigned long *,unsigned char *,BSTR *);
+  unsigned char *__RPC_API BSTR_UserUnmarshal(unsigned long *,unsigned char *,BSTR *);
+  void __RPC_API BSTR_UserFree(unsigned long *,BSTR *);
+  unsigned long __RPC_API VARIANT_UserSize(unsigned long *,unsigned long,VARIANT *);
+  unsigned char *__RPC_API VARIANT_UserMarshal(unsigned long *,unsigned char *,VARIANT *);
+  unsigned char *__RPC_API VARIANT_UserUnmarshal(unsigned long *,unsigned char *,VARIANT *);
+  void __RPC_API VARIANT_UserFree(unsigned long *,VARIANT *);
+
+#ifdef __cplusplus
+}
+#endif
+#endif