128 lines
3.9 KiB
C
128 lines
3.9 KiB
C
/*
|
|
* 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 <pshpack8.h> /* 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 <poppack.h> /* End byte packing */
|
|
|
|
|
|
#endif //#ifndef _IACAPAPI_H
|
|
|