windows-nt/Source/XPSP1/NT/net/published/idlole/ipmsp.idl
2020-09-26 16:20:57 +08:00

394 lines
9.1 KiB
Plaintext

///////////////////////////////////////////////////////////////////////////
// ipmsp.idl : IDL source for IP specific msp interfaces
/////////////////////////////////////////////////////////////////////////////
#ifndef __IPMSP_IDL__
#define __IPMSP_IDL__
import "tapi3if.idl";
import "strmif.idl";
// The maximum length of the info string is 256 bytes inluding EOS.
const unsigned long MAX_PARTICIPANT_TYPED_INFO_LENGTH = 256;
const unsigned long MAX_QOS_ID_LEN = 128;
typedef enum PARTICIPANT_TYPED_INFO
{
PTI_CANONICALNAME,
PTI_NAME,
PTI_EMAILADDRESS,
PTI_PHONENUMBER,
PTI_LOCATION,
PTI_TOOL,
PTI_NOTES,
PTI_PRIVATE
} PARTICIPANT_TYPED_INFO;
typedef enum PARTICIPANT_EVENT
{
PE_NEW_PARTICIPANT,
PE_INFO_CHANGE,
PE_PARTICIPANT_LEAVE,
PE_NEW_SUBSTREAM,
PE_SUBSTREAM_REMOVED,
PE_SUBSTREAM_MAPPED,
PE_SUBSTREAM_UNMAPPED,
PE_PARTICIPANT_TIMEOUT,
PE_PARTICIPANT_RECOVERED,
PE_PARTICIPANT_ACTIVE,
PE_PARTICIPANT_INACTIVE,
PE_LOCAL_TALKING,
PE_LOCAL_SILENT
} PARTICIPANT_EVENT;
[
uuid(5899b820-5a34-11d2-95a0-00a0244d2298),
helpstring("ITParticipant Interface"),
pointer_default(unique),
dual
]
interface ITParticipant : IDispatch
{
[propget, id(1), helpstring("propertry ParticipantTypedInfo")]
HRESULT ParticipantTypedInfo(
[in] PARTICIPANT_TYPED_INFO InfoType,
[out, retval] BSTR * ppInfo
);
[propget, id(2), helpstring("the media types of the participant")]
HRESULT MediaTypes(
[out, retval] long * plMediaType
);
[propput, id(3), helpstring("enable or disable a participant")]
HRESULT Status(
[in] ITStream * pITStream,
[in] VARIANT_BOOL fEnable
);
[propget, id(3), helpstring("the status of the participant")]
HRESULT Status(
[in] ITStream * pITStream,
[out, retval] VARIANT_BOOL * pStatus
);
[propget, id(4), helpstring("an ITCollection of streams that have the participant")]
HRESULT Streams(
[out, retval] VARIANT * pVariant
);
[id(6), hidden]
HRESULT EnumerateStreams(
[out, retval] IEnumStream ** ppEnumStream
);
}
cpp_quote("#ifndef STREAM_INTERFACES_DEFINED")
cpp_quote("#define STREAM_INTERFACES_DEFINED")
const DWORD MAX_DESCRIPTION_LEN = 256;
typedef struct _TAPI_AUDIO_STREAM_CONFIG_CAPS
{
WCHAR Description[MAX_DESCRIPTION_LEN];
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, *PTAPI_AUDIO_STREAM_CONFIG_CAPS;
typedef struct _TAPI_VIDEO_STREAM_CONFIG_CAPS
{
WCHAR Description[MAX_DESCRIPTION_LEN];
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, *PTAPI_VIDEO_STREAM_CONFIG_CAPS;
typedef enum tagStreamConfigCapsType
{
AudioStreamConfigCaps,
VideoStreamConfigCaps
} 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, *PTAPI_STREAM_CONFIG_CAPS;
typedef enum tagTAPIControlFlags
{
TAPIControl_Flags_None = 0x0000,
TAPIControl_Flags_Auto = 0x0001,
TAPIControl_Flags_Manual = 0x0002
} TAPIControlFlags;
[
object,
local,
uuid(6c0ab6c1-21e3-11d3-a577-00c04f8ef6e3),
pointer_default(unique),
hidden
]
interface ITFormatControl : IUnknown
{
HRESULT GetCurrentFormat(
[out] AM_MEDIA_TYPE **ppMediaType
);
HRESULT ReleaseFormat (
[in] AM_MEDIA_TYPE *pMediaType
);
HRESULT GetNumberOfCapabilities(
[out] DWORD *pdwCount
);
HRESULT GetStreamCaps(
[in] DWORD dwIndex,
[out] AM_MEDIA_TYPE **ppMediaType,
[out] TAPI_STREAM_CONFIG_CAPS *pStreamConfigCaps,
[out] BOOL *pfEnabled
);
HRESULT ReOrderCapabilities(
[in] DWORD *pdwIndices,
[in] BOOL *pfEnabled,
[in] BOOL *pfPublicize,
[in] DWORD dwNumIndices
);
}
typedef enum tagStreamQualityProperty
{
StreamQuality_MaxBitrate,
StreamQuality_CurrBitrate, // Read-Only
StreamQuality_MinFrameInterval,
StreamQuality_AvgFrameInterval, // Read-Only
} StreamQualityProperty;
[
object,
local,
uuid(6c0ab6c2-21e3-11d3-a577-00c04f8ef6e3),
pointer_default(unique),
hidden
]
interface ITStreamQualityControl : IUnknown
{
HRESULT GetRange(
[in] StreamQualityProperty Property,
[out] long *plMin,
[out] long *plMax,
[out] long *plSteppingDelta,
[out] long *plDefault,
[out] TAPIControlFlags *plFlags
);
HRESULT Get(
[in] StreamQualityProperty Property,
[out] long *plValue,
[out] TAPIControlFlags *plFlags
);
HRESULT Set(
[in] StreamQualityProperty Property,
[in] long lValue,
[in] TAPIControlFlags lFlags
);
}
typedef enum tagCallQualityProperty
{
CallQuality_ControlInterval,
CallQuality_ConfBitrate, // confmsp and read-only
CallQuality_MaxInputBitrate, // read only
CallQuality_CurrInputBitrate, // Read-Only
CallQuality_MaxOutputBitrate,
CallQuality_CurrOutputBitrate, // Read-Only
CallQuality_MaxCPULoad,
CallQuality_CurrCPULoad // Read-Only
} CallQualityProperty;
[
object,
local,
uuid(fe1d8ae0-edc4-49b5-8f8c-4de40f9cdfaf),
pointer_default(unique),
hidden
]
interface ITCallQualityControl : IUnknown
{
HRESULT GetRange(
[in] CallQualityProperty Property,
[out] long *plMin,
[out] long *plMax,
[out] long *plSteppingDelta,
[out] long *plDefault,
[out] TAPIControlFlags *plFlags
);
HRESULT Get(
[in] CallQualityProperty Property,
[out] long *plValue,
[out] TAPIControlFlags *plFlags
);
HRESULT Set(
[in] CallQualityProperty Property,
[in] long lValue,
[in] TAPIControlFlags lFlags
);
}
typedef enum tagAudioDeviceProperty
{
AudioDevice_DuplexMode,
AudioDevice_AutomaticGainControl,
AudioDevice_AcousticEchoCancellation
} AudioDeviceProperty;
[
object,
local,
uuid(6c0ab6c5-21e3-11d3-a577-00c04f8ef6e3),
pointer_default(unique),
hidden
]
interface ITAudioDeviceControl : IUnknown
{
HRESULT GetRange(
[in] AudioDeviceProperty Property,
[out] long *plMin,
[out] long *plMax,
[out] long *plSteppingDelta,
[out] long *plDefault,
[out] TAPIControlFlags *plFlags
);
HRESULT Get(
[in] AudioDeviceProperty Property,
[out] long *plValue,
[out] TAPIControlFlags *plFlags
);
HRESULT Set(
[in] AudioDeviceProperty Property,
[in] long lValue,
[in] TAPIControlFlags lFlags
);
}
typedef enum tagAudioSettingsProperty
{
AudioSettings_SignalLevel, // Read-Only
AudioSettings_SilenceThreshold,
AudioSettings_Volume,
AudioSettings_Balance,
AudioSettings_Loudness,
AudioSettings_Treble,
AudioSettings_Bass,
AudioSettings_Mono
} AudioSettingsProperty;
[
object,
local,
uuid(6c0ab6c6-21e3-11d3-a577-00c04f8ef6e3),
pointer_default(unique),
hidden
]
interface ITAudioSettings : IUnknown
{
HRESULT GetRange(
[in] AudioSettingsProperty Property,
[out] long *plMin,
[out] long *plMax,
[out] long *plSteppingDelta,
[out] long *plDefault,
[out] TAPIControlFlags *plFlags
);
HRESULT Get(
[in] AudioSettingsProperty Property,
[out] long *plValue,
[out] TAPIControlFlags *plFlags
);
HRESULT Set(
[in] AudioSettingsProperty Property,
[in] long lValue,
[in] TAPIControlFlags lFlags
);
}
[
uuid(e8c89d27-a3bd-47d5-a6fc-d2ae40cdbc6e),
helpstring("ITQOSApplicationID interface"),
pointer_default(unique),
dual
]
interface ITQOSApplicationID : IDispatch
{
HRESULT SetQOSApplicationID(
[in] BSTR pApplicationID,
[in] BSTR pApplicationGUID,
[in] BSTR pSubIDs
);
}
cpp_quote("#endif // STREAM_INTERFACES_DEFINED")
cpp_quote("#ifndef RTP_MEDIATYPE_DEFINED")
cpp_quote("#define RTP_MEDIATYPE_DEFINED")
cpp_quote("struct DECLSPEC_UUID(\"14099BC0-787B-11d0-9CD3-00A0C9081C19\") MEDIATYPE_RTP_Single_Stream;")
cpp_quote("#endif //RTP_MEDIATYPE_DEFINED")
#endif // __H323_PRIVATE_IDL__