/* * File: iacapapi.h * * Network audio application capability interface. Provides * APIs for enumerating, prioritizing, and enabling/disabling * codecs independently for send/receive. * * Revision History: * * 06/06/96 mikev created * 02/05/97 yoramy moved most of what was here to appavcap.h */ #ifndef _IACAPAPI_H #define _IACAPAPI_H #include "appavcap.h" #include /* Assume 8 byte packing throughout */ #ifndef DECLARE_INTERFACE_PTR #ifdef __cplusplus #define DECLARE_INTERFACE_PTR(iface, piface) \ interface iface; typedef iface FAR * piface #else #define DECLARE_INTERFACE_PTR(iface, piface) \ typedef interface iface iface, FAR * piface #endif #endif /* DECLARE_INTERFACE_PTR */ //Interface declarations: // // IAppAudioCap, IAppVidCap and IDualPubCap // // //This is the interface to the Audio Class #undef INTERFACE #define INTERFACE IAppAudioCap DECLARE_INTERFACE( IAppAudioCap ) { STDMETHOD_(ULONG,AddRef) (THIS) PURE; STDMETHOD_(ULONG,Release) (THIS) PURE; STDMETHOD (GetNumFormats) (THIS_ UINT *puNumFmtOut) PURE; STDMETHOD (ApplyAppFormatPrefs) (THIS_ PBASIC_AUDCAP_INFO pFormatPrefsBuf, UINT uNumFormatPrefs) PURE; STDMETHOD (EnumFormats) (THIS_ PBASIC_AUDCAP_INFO pFmtBuf, UINT uBufsize, UINT *uNumFmtOut) PURE; STDMETHOD (EnumCommonFormats) (THIS_ PBASIC_AUDCAP_INFO pFmtBuf, UINT uBufsize, UINT *uNumFmtOut, BOOL bTXCaps) PURE; STDMETHOD (GetBasicAudcapInfo) (THIS_ AUDIO_FORMAT_ID Id, PBASIC_AUDCAP_INFO pFormatPrefsBuf) PURE; STDMETHOD (AddACMFormat) (THIS_ LPWAVEFORMATEX lpwfx, PAUDCAP_INFO pAudCapInfo) PURE; STDMETHOD (RemoveACMFormat) (THIS_ LPWAVEFORMATEX lpwfx) PURE; STDMETHOD_ (LPVOID, GetFormatDetails) (THIS_ AUDIO_FORMAT_ID Id) PURE; }; DECLARE_INTERFACE_PTR(IAppAudioCap, LPAPPCAPPIF); HRESULT WINAPI CreateAppCapInterface(LPAPPCAPPIF *ppAppCap); #define CREATEIAPPCAPNAME (_TEXT("CreateAppCapInterface")) typedef HRESULT (WINAPI *CREATEIAPPCAPPROC) (LPAPPCAPPIF *ppAppCap); //This is the interface to the Video Class #undef INTERFACE #define INTERFACE IAppVidCap DECLARE_INTERFACE( IAppVidCap ) { STDMETHOD_(ULONG,AddRef) (THIS) PURE; STDMETHOD_(ULONG,Release) (THIS) PURE; STDMETHOD (GetNumFormats) (THIS_ UINT *puNumFmtOut) PURE; STDMETHOD (ApplyAppFormatPrefs) (THIS_ PBASIC_VIDCAP_INFO pFormatPrefsBuf, UINT uNumFormatPrefs) PURE; STDMETHOD (EnumFormats) (THIS_ PBASIC_VIDCAP_INFO pFmtBuf, UINT uBufsize, UINT *uNumFmtOut) PURE; STDMETHOD (EnumCommonFormats) (THIS_ PBASIC_VIDCAP_INFO pFmtBuf, UINT uBufsize, UINT *uNumFmtOut, BOOL bTXCaps) PURE; STDMETHOD (GetBasicVidcapInfo) (THIS_ VIDEO_FORMAT_ID Id, PBASIC_VIDCAP_INFO pFormatPrefsBuf) PURE; STDMETHOD (AddVCMFormat) (THIS_ PVIDEOFORMATEX lpvfx, PVIDCAP_INFO pVidCapInfo) PURE; STDMETHOD (RemoveVCMFormat) (THIS_ PVIDEOFORMATEX lpvfx) PURE; STDMETHOD_ (PVIDEOFORMATEX, GetVidcapDetails) (THIS_ VIDEO_FORMAT_ID Id) PURE; STDMETHOD (GetPreferredFormatId) (THIS_ VIDEO_FORMAT_ID *pId) PURE; STDMETHOD (SetDeviceID)(THIS_ DWORD dwDeviceID) PURE; }; DECLARE_INTERFACE_PTR(IAppVidCap, LPAPPVIDCAPPIF); HRESULT WINAPI CreateAppVidCapInterface(LPAPPVIDCAPPIF *ppAppVidCap); #define CREATEIAPPVIDCAPNAME (_TEXT("CreateAppVidCapInterface")) typedef HRESULT (WINAPI *CREATEIAPPVIDCAPPROC) (LPAPPVIDCAPPIF *ppAppVidCap); //This is the app's interface to the CapsCtl Class #undef INTERFACE #define INTERFACE IDualPubCap DECLARE_INTERFACE( IDualPubCap ) { STDMETHOD_(ULONG, AddRef()) =0; STDMETHOD_(ULONG, Release())=0; STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR * ppvObj) PURE; STDMETHOD_(BOOL, Init())=0; STDMETHOD(ReInitialize())=0; }; DECLARE_INTERFACE_PTR(IDualPubCap, LPCAPSIF); HRESULT WINAPI CreateCapsInterface(LPCAPSIF *ppAppCap); #define CREATEICAPSNAME (_TEXT("CreateCapsInterface")) typedef HRESULT (WINAPI *CREATEICAPSPROC) (LPCAPSIF *ppCapsIF); #include /* End byte packing */ #endif //#ifndef _IACAPAPI_H