Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

127 lines
4.1 KiB

  1. /*
  2. * File: iacapapi.h
  3. *
  4. * Network audio application capability interface. Provides
  5. * APIs for enumerating, prioritizing, and enabling/disabling
  6. * codecs independently for send/receive.
  7. *
  8. * Revision History:
  9. *
  10. * 06/06/96 mikev created
  11. * 02/05/97 yoramy moved most of what was here to appavcap.h
  12. */
  13. #ifndef _IACAPAPI_H
  14. #define _IACAPAPI_H
  15. #include "appavcap.h"
  16. #include <pshpack8.h> /* Assume 8 byte packing throughout */
  17. #ifndef DECLARE_INTERFACE_PTR
  18. #ifdef __cplusplus
  19. #define DECLARE_INTERFACE_PTR(iface, piface) \
  20. interface iface; typedef iface FAR * piface
  21. #else
  22. #define DECLARE_INTERFACE_PTR(iface, piface) \
  23. typedef interface iface iface, FAR * piface
  24. #endif
  25. #endif /* DECLARE_INTERFACE_PTR */
  26. //Interface declarations:
  27. //
  28. // IAppAudioCap, IAppVidCap and IDualPubCap
  29. //
  30. //
  31. //This is the interface to the Audio Class
  32. #undef INTERFACE
  33. #define INTERFACE IAppAudioCap
  34. DECLARE_INTERFACE( IAppAudioCap )
  35. {
  36. STDMETHOD_(ULONG,AddRef) (THIS) PURE;
  37. STDMETHOD_(ULONG,Release) (THIS) PURE;
  38. STDMETHOD (GetNumFormats) (THIS_ UINT *puNumFmtOut) PURE;
  39. STDMETHOD (ApplyAppFormatPrefs) (THIS_ PBASIC_AUDCAP_INFO pFormatPrefsBuf,
  40. UINT uNumFormatPrefs) PURE;
  41. STDMETHOD (EnumFormats) (THIS_ PBASIC_AUDCAP_INFO pFmtBuf, UINT uBufsize,
  42. UINT *uNumFmtOut) PURE;
  43. STDMETHOD (EnumCommonFormats) (THIS_ PBASIC_AUDCAP_INFO pFmtBuf, UINT uBufsize,
  44. UINT *uNumFmtOut, BOOL bTXCaps) PURE;
  45. STDMETHOD (GetBasicAudcapInfo) (THIS_ AUDIO_FORMAT_ID Id,
  46. PBASIC_AUDCAP_INFO pFormatPrefsBuf) PURE;
  47. STDMETHOD (AddACMFormat) (THIS_ LPWAVEFORMATEX lpwfx, PAUDCAP_INFO pAudCapInfo) PURE;
  48. STDMETHOD (RemoveACMFormat) (THIS_ LPWAVEFORMATEX lpwfx) PURE;
  49. STDMETHOD_ (LPVOID, GetFormatDetails) (THIS_ AUDIO_FORMAT_ID Id) PURE;
  50. };
  51. DECLARE_INTERFACE_PTR(IAppAudioCap, LPAPPCAPPIF);
  52. HRESULT WINAPI CreateAppCapInterface(LPAPPCAPPIF *ppAppCap);
  53. #define CREATEIAPPCAPNAME (_TEXT("CreateAppCapInterface"))
  54. typedef HRESULT (WINAPI *CREATEIAPPCAPPROC) (LPAPPCAPPIF *ppAppCap);
  55. //This is the interface to the Video Class
  56. #undef INTERFACE
  57. #define INTERFACE IAppVidCap
  58. DECLARE_INTERFACE( IAppVidCap )
  59. {
  60. STDMETHOD_(ULONG,AddRef) (THIS) PURE;
  61. STDMETHOD_(ULONG,Release) (THIS) PURE;
  62. STDMETHOD (GetNumFormats) (THIS_ UINT *puNumFmtOut) PURE;
  63. STDMETHOD (ApplyAppFormatPrefs) (THIS_ PBASIC_VIDCAP_INFO pFormatPrefsBuf,
  64. UINT uNumFormatPrefs) PURE;
  65. STDMETHOD (EnumFormats) (THIS_ PBASIC_VIDCAP_INFO pFmtBuf, UINT uBufsize,
  66. UINT *uNumFmtOut) PURE;
  67. STDMETHOD (EnumCommonFormats) (THIS_ PBASIC_VIDCAP_INFO pFmtBuf, UINT uBufsize,
  68. UINT *uNumFmtOut, BOOL bTXCaps) PURE;
  69. STDMETHOD (GetBasicVidcapInfo) (THIS_ VIDEO_FORMAT_ID Id,
  70. PBASIC_VIDCAP_INFO pFormatPrefsBuf) PURE;
  71. STDMETHOD (AddVCMFormat) (THIS_ PVIDEOFORMATEX lpvfx, PVIDCAP_INFO pVidCapInfo) PURE;
  72. STDMETHOD (RemoveVCMFormat) (THIS_ PVIDEOFORMATEX lpvfx) PURE;
  73. STDMETHOD_ (PVIDEOFORMATEX, GetVidcapDetails) (THIS_ VIDEO_FORMAT_ID Id) PURE;
  74. STDMETHOD (GetPreferredFormatId) (THIS_ VIDEO_FORMAT_ID *pId) PURE;
  75. STDMETHOD (SetDeviceID)(THIS_ DWORD dwDeviceID) PURE;
  76. };
  77. DECLARE_INTERFACE_PTR(IAppVidCap, LPAPPVIDCAPPIF);
  78. HRESULT WINAPI CreateAppVidCapInterface(LPAPPVIDCAPPIF *ppAppVidCap);
  79. #define CREATEIAPPVIDCAPNAME (_TEXT("CreateAppVidCapInterface"))
  80. typedef HRESULT (WINAPI *CREATEIAPPVIDCAPPROC) (LPAPPVIDCAPPIF *ppAppVidCap);
  81. //This is the app's interface to the CapsCtl Class
  82. #undef INTERFACE
  83. #define INTERFACE IDualPubCap
  84. DECLARE_INTERFACE( IDualPubCap )
  85. {
  86. STDMETHOD_(ULONG, AddRef()) =0;
  87. STDMETHOD_(ULONG, Release())=0;
  88. STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR * ppvObj) PURE;
  89. STDMETHOD_(BOOL, Init())=0;
  90. STDMETHOD(ReInitialize())=0;
  91. };
  92. DECLARE_INTERFACE_PTR(IDualPubCap, LPCAPSIF);
  93. HRESULT WINAPI CreateCapsInterface(LPCAPSIF *ppAppCap);
  94. #define CREATEICAPSNAME (_TEXT("CreateCapsInterface"))
  95. typedef HRESULT (WINAPI *CREATEICAPSPROC) (LPCAPSIF *ppCapsIF);
  96. #include <poppack.h> /* End byte packing */
  97. #endif //#ifndef _IACAPAPI_H