⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ipmsp.h

📁 这是一本学习 window编程的很好的参考教材
💻 H
📖 第 1 页 / 共 4 页
字号:
/* [local] */ 

#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;
    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_0484_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_ipmsp_0484_v0_0_s_ifspec;

#ifndef __ITFormatControl_INTERFACE_DEFINED__
#define __ITFormatControl_INTERFACE_DEFINED__

/* interface ITFormatControl */
/* [hidden][unique][uuid][local][object] */ 


EXTERN_C const IID IID_ITFormatControl;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("6c0ab6c1-21e3-11d3-a577-00c04f8ef6e3")
    ITFormatControl : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE GetCurrentFormat( 
            /* [out] */ AM_MEDIA_TYPE **ppMediaType) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE ReleaseFormat( 
            /* [in] */ AM_MEDIA_TYPE *pMediaType) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetNumberOfCapabilities( 
            /* [out] */ DWORD *pdwCount) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetStreamCaps( 
            /* [in] */ DWORD dwIndex,
            /* [out] */ AM_MEDIA_TYPE **ppMediaType,
            /* [out] */ TAPI_STREAM_CONFIG_CAPS *pStreamConfigCaps,
            /* [out] */ BOOL *pfEnabled) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE ReOrderCapabilities( 
            /* [in] */ DWORD *pdwIndices,
            /* [in] */ BOOL *pfEnabled,
            /* [in] */ BOOL *pfPublicize,
            /* [in] */ DWORD dwNumIndices) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ITFormatControlVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            ITFormatControl * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            ITFormatControl * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            ITFormatControl * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetCurrentFormat )( 
            ITFormatControl * This,
            /* [out] */ AM_MEDIA_TYPE **ppMediaType);
        
        HRESULT ( STDMETHODCALLTYPE *ReleaseFormat )( 
            ITFormatControl * This,
            /* [in] */ AM_MEDIA_TYPE *pMediaType);
        
        HRESULT ( STDMETHODCALLTYPE *GetNumberOfCapabilities )( 
            ITFormatControl * This,
            /* [out] */ DWORD *pdwCount);
        
        HRESULT ( STDMETHODCALLTYPE *GetStreamCaps )( 
            ITFormatControl * This,
            /* [in] */ DWORD dwIndex,
            /* [out] */ AM_MEDIA_TYPE **ppMediaType,
            /* [out] */ TAPI_STREAM_CONFIG_CAPS *pStreamConfigCaps,
            /* [out] */ BOOL *pfEnabled);
        
        HRESULT ( STDMETHODCALLTYPE *ReOrderCapabilities )( 
            ITFormatControl * This,
            /* [in] */ DWORD *pdwIndices,
            /* [in] */ BOOL *pfEnabled,
            /* [in] */ BOOL *pfPublicize,
            /* [in] */ DWORD dwNumIndices);
        
        END_INTERFACE
    } ITFormatControlVtbl;

    interface 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 /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE ITFormatControl_GetCurrentFormat_Proxy( 
    ITFormatControl * This,
    /* [out] */ AM_MEDIA_TYPE **ppMediaType);


void __RPC_STUB ITFormatControl_GetCurrentFormat_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE ITFormatControl_ReleaseFormat_Proxy( 
    ITFormatControl * This,
    /* [in] */ AM_MEDIA_TYPE *pMediaType);


void __RPC_STUB ITFormatControl_ReleaseFormat_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE ITFormatControl_GetNumberOfCapabilities_Proxy( 
    ITFormatControl * This,
    /* [out] */ DWORD *pdwCount);


void __RPC_STUB ITFormatControl_GetNumberOfCapabilities_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE ITFormatControl_GetStreamCaps_Proxy( 
    ITFormatControl * This,
    /* [in] */ DWORD dwIndex,
    /* [out] */ AM_MEDIA_TYPE **ppMediaType,
    /* [out] */ TAPI_STREAM_CONFIG_CAPS *pStreamConfigCaps,
    /* [out] */ BOOL *pfEnabled);


void __RPC_STUB ITFormatControl_GetStreamCaps_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE ITFormatControl_ReOrderCapabilities_Proxy( 
    ITFormatControl * This,
    /* [in] */ DWORD *pdwIndices,
    /* [in] */ BOOL *pfEnabled,
    /* [in] */ BOOL *pfPublicize,
    /* [in] */ DWORD dwNumIndices);


void __RPC_STUB ITFormatControl_ReOrderCapabilities_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __ITFormatControl_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_ipmsp_0485 */
/* [local] */ 

typedef 
enum tagStreamQualityProperty
    {	StreamQuality_MaxBitrate	= 0,
	StreamQuality_CurrBitrate	= StreamQuality_MaxBitrate + 1,
	StreamQuality_MinFrameInterval	= StreamQuality_CurrBitrate + 1,
	StreamQuality_AvgFrameInterval	= StreamQuality_MinFrameInterval + 1
    } 	StreamQualityProperty;



extern RPC_IF_HANDLE __MIDL_itf_ipmsp_0485_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_ipmsp_0485_v0_0_s_ifspec;

#ifndef __ITStreamQualityControl_INTERFACE_DEFINED__
#define __ITStreamQualityControl_INTERFACE_DEFINED__

/* interface ITStreamQualityControl */
/* [hidden][unique][uuid][local][object] */ 


EXTERN_C const IID IID_ITStreamQualityControl;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("6c0ab6c2-21e3-11d3-a577-00c04f8ef6e3")
    ITStreamQualityControl : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE GetRange( 
            /* [in] */ StreamQualityProperty Property,
            /* [out] */ long *plMin,
            /* [out] */ long *plMax,
            /* [out] */ long *plSteppingDelta,
            /* [out] */ long *plDefault,
            /* [out] */ TAPIControlFlags *plFlags) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Get( 
            /* [in] */ StreamQualityProperty Property,
            /* [out] */ long *plValue,
            /* [out] */ TAPIControlFlags *plFlags) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Set( 
            /* [in] */ StreamQualityProperty Property,
            /* [in] */ long lValue,
            /* [in] */ TAPIControlFlags lFlags) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ITStreamQualityControlVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            ITStreamQualityControl * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            ITStreamQualityControl * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            ITStreamQualityControl * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetRange )( 
            ITStreamQualityControl * This,
            /* [in] */ StreamQualityProperty Property,
            /* [out] */ long *plMin,
            /* [out] */ long *plMax,
            /* [out] */ long *plSteppingDelta,
            /* [out] */ long *plDefault,
            /* [out] */ TAPIControlFlags *plFlags);
        
        HRESULT ( STDMETHODCALLTYPE *Get )( 
            ITStreamQualityControl * This,
            /* [in] */ StreamQualityProperty Property,
            /* [out] */ long *plValue,
            /* [out] */ TAPIControlFlags *plFlags);
        
        HRESULT ( STDMETHODCALLTYPE *Set )( 
            ITStreamQualityControl * This,
            /* [in] */ StreamQualityProperty Property,
            /* [in] */ long lValue,
            /* [in] */ TAPIControlFlags lFlags);
        
        END_INTERFACE
    } ITStreamQualityControlVtbl;

    interface 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)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -