windows-nt/Source/XPSP1/NT/enduser/netmeeting/h/iacapapi.h

128 lines
3.9 KiB
C
Raw Normal View History

2020-09-26 03:20:57 -05:00
/*
* 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