rtccore.idl
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:40k
- //
- // Copyright (c) 2000 Microsoft Corporation
- //
- cpp_quote("/* Copyright (c) 2000-2001 Microsoft Corporation */")
- //
- // RTCCore.idl : IDL source for RTCCore.dll
- //
- // This file will be processed by the MIDL tool to
- // produce the type library (RTCCore.tlb) and marshalling code.
- import "oaidl.idl";
- import "ocidl.idl";
- import "control.odl";
- // Types
-
- typedef enum RTC_AUDIO_DEVICE
- {
- RTCAD_SPEAKER,
- RTCAD_MICROPHONE
- } RTC_AUDIO_DEVICE;
- typedef enum RTC_VIDEO_DEVICE
- {
- RTCVD_RECEIVE,
- RTCVD_PREVIEW
- } RTC_VIDEO_DEVICE;
- typedef enum RTC_EVENT
- {
- RTCE_CLIENT,
- RTCE_REGISTRATION_STATE_CHANGE,
- RTCE_SESSION_STATE_CHANGE,
- RTCE_SESSION_OPERATION_COMPLETE,
- RTCE_PARTICIPANT_STATE_CHANGE,
- RTCE_MEDIA,
- RTCE_INTENSITY,
- RTCE_MESSAGING,
- RTCE_BUDDY,
- RTCE_WATCHER,
- RTCE_PROFILE
- } RTC_EVENT;
- typedef enum RTC_LISTEN_MODE
- {
- RTCLM_NONE,
- RTCLM_DYNAMIC,
- RTCLM_BOTH
- } RTC_LISTEN_MODE;
- typedef enum RTC_CLIENT_EVENT_TYPE
- {
- RTCCET_VOLUME_CHANGE,
- RTCCET_DEVICE_CHANGE,
- RTCCET_NETWORK_QUALITY_CHANGE,
- RTCCET_ASYNC_CLEANUP_DONE
- } RTC_CLIENT_EVENT_TYPE;
- typedef enum RTC_TERMINATE_REASON
- {
- RTCTR_NORMAL,
- RTCTR_DND,
- RTCTR_BUSY,
- RTCTR_REJECT,
- RTCTR_TIMEOUT,
- RTCTR_SHUTDOWN
- } RTC_TERMINATE_REASON;
- typedef enum RTC_REGISTRATION_STATE
- {
- RTCRS_NOT_REGISTERED,
- RTCRS_REGISTERING,
- RTCRS_REGISTERED,
- RTCRS_REJECTED,
- RTCRS_UNREGISTERING,
- RTCRS_ERROR,
- RTCRS_LOGGED_OFF,
- RTCRS_LOCAL_PA_LOGGED_OFF,
- RTCRS_REMOTE_PA_LOGGED_OFF
- } RTC_REGISTRATION_STATE;
- typedef enum RTC_SESSION_STATE
- {
- RTCSS_IDLE,
- RTCSS_INCOMING,
- RTCSS_ANSWERING,
- RTCSS_INPROGRESS,
- RTCSS_CONNECTED,
- RTCSS_DISCONNECTED
- } RTC_SESSION_STATE;
- typedef enum RTC_PARTICIPANT_STATE
- {
- RTCPS_IDLE,
- RTCPS_PENDING,
- RTCPS_INCOMING,
- RTCPS_ANSWERING,
- RTCPS_INPROGRESS,
- RTCPS_ALERTING,
- RTCPS_CONNECTED,
- RTCPS_DISCONNECTING,
- RTCPS_DISCONNECTED
- } RTC_PARTICIPANT_STATE;
- typedef enum RTC_WATCHER_STATE
- {
- RTCWS_UNKNOWN,
- RTCWS_OFFERING,
- RTCWS_ALLOWED,
- RTCWS_BLOCKED
- } RTC_WATCHER_STATE;
- typedef enum RTC_OFFER_WATCHER_MODE
- {
- RTCOWM_OFFER_WATCHER_EVENT,
- RTCOWM_AUTOMATICALLY_ADD_WATCHER
- } RTC_OFFER_WATCHER_MODE;
- typedef enum RTC_PRIVACY_MODE
- {
- RTCPM_BLOCK_LIST_EXCLUDED,
- RTCPM_ALLOW_LIST_ONLY
- } RTC_PRIVACY_MODE;
- typedef enum RTC_SESSION_TYPE
- {
- RTCST_PC_TO_PC,
- RTCST_PC_TO_PHONE,
- RTCST_PHONE_TO_PHONE,
- RTCST_IM
-
- } RTC_SESSION_TYPE;
- typedef enum RTC_PRESENCE_STATUS
- {
- RTCXS_PRESENCE_OFFLINE,
- RTCXS_PRESENCE_ONLINE,
- RTCXS_PRESENCE_AWAY,
- RTCXS_PRESENCE_IDLE,
- RTCXS_PRESENCE_BUSY,
- RTCXS_PRESENCE_BE_RIGHT_BACK,
- RTCXS_PRESENCE_ON_THE_PHONE,
- RTCXS_PRESENCE_OUT_TO_LUNCH
- } RTC_PRESENCE_STATUS;
- typedef enum RTC_MEDIA_EVENT_TYPE
- {
- RTCMET_STOPPED,
- RTCMET_STARTED,
- RTCMET_FAILED
- } RTC_MEDIA_EVENT_TYPE;
- typedef enum RTC_MEDIA_EVENT_REASON
- {
- RTCMER_NORMAL,
- RTCMER_HOLD,
- RTCMER_TIMEOUT,
- RTCMER_BAD_DEVICE
- } RTC_MEDIA_EVENT_REASON;
- typedef enum RTC_MESSAGING_EVENT_TYPE
- {
- RTCMSET_MESSAGE,
- RTCMSET_STATUS,
- } RTC_MESSAGING_EVENT_TYPE;
- typedef enum RTC_MESSAGING_USER_STATUS
- {
- RTCMUS_IDLE,
- RTCMUS_TYPING
- } RTC_MESSAGING_USER_STATUS;
- typedef enum RTC_DTMF
- {
- RTC_DTMF_0,
- RTC_DTMF_1,
- RTC_DTMF_2,
- RTC_DTMF_3,
- RTC_DTMF_4,
- RTC_DTMF_5,
- RTC_DTMF_6,
- RTC_DTMF_7,
- RTC_DTMF_8,
- RTC_DTMF_9,
- RTC_DTMF_STAR,
- RTC_DTMF_POUND,
- RTC_DTMF_A,
- RTC_DTMF_B,
- RTC_DTMF_C,
- RTC_DTMF_D,
- RTC_DTMF_FLASH
- } RTC_DTMF;
- typedef enum RTC_PROVIDER_URI
- {
- RTCPU_URIHOMEPAGE,
- RTCPU_URIHELPDESK,
- RTCPU_URIPERSONALACCOUNT,
- RTCPU_URIDISPLAYDURINGCALL,
- RTCPU_URIDISPLAYDURINGIDLE
- } RTC_PROVIDER_URI;
- typedef enum RTC_RING_TYPE
- {
- RTCRT_PHONE,
- RTCRT_MESSAGE,
- RTCRT_RINGBACK
- } RTC_RING_TYPE;
- typedef enum RTC_T120_APPLET
- {
- RTCTA_WHITEBOARD,
- RTCTA_APPSHARING
- } RTC_T120_APPLET;
- cpp_quote("#define RTCCS_FORCE_PROFILE 0x00000001")
- cpp_quote("#define RTCCS_FAIL_ON_REDIRECT 0x00000002")
- // Media Types
- cpp_quote("#define RTCMT_AUDIO_SEND 0x00000001")
- cpp_quote("#define RTCMT_AUDIO_RECEIVE 0x00000002")
- cpp_quote("#define RTCMT_VIDEO_SEND 0x00000004")
- cpp_quote("#define RTCMT_VIDEO_RECEIVE 0x00000008")
- cpp_quote("#define RTCMT_T120_SENDRECV 0x00000010")
- cpp_quote("#define RTCMT_ALL_RTP ( \")
- cpp_quote(" RTCMT_AUDIO_SEND | \")
- cpp_quote(" RTCMT_AUDIO_RECEIVE | \")
- cpp_quote(" RTCMT_VIDEO_SEND | \")
- cpp_quote(" RTCMT_VIDEO_RECEIVE ) ")
- cpp_quote("#define RTCMT_ALL ( \")
- cpp_quote(" RTCMT_ALL_RTP | \")
- cpp_quote(" RTCMT_T120_SENDRECV ) ")
- // Session Info
- cpp_quote("#define RTCSI_PC_TO_PC 0x00000001")
- cpp_quote("#define RTCSI_PC_TO_PHONE 0x00000002")
- cpp_quote("#define RTCSI_PHONE_TO_PHONE 0x00000004")
- cpp_quote("#define RTCSI_IM 0x00000008")
- // Transports
- cpp_quote("#define RTCTR_UDP 0x00000001")
- cpp_quote("#define RTCTR_TCP 0x00000002")
- cpp_quote("#define RTCTR_TLS 0x00000004")
- // Registration Flags
- cpp_quote("#define RTCRF_REGISTER_INVITE_SESSIONS 0x00000001")
- cpp_quote("#define RTCRF_REGISTER_MESSAGE_SESSIONS 0x00000002")
- cpp_quote("#define RTCRF_REGISTER_PRESENCE 0x00000004")
- cpp_quote("#define RTCRF_REGISTER_ALL 0x00000007")
- // Event Filters
- cpp_quote("#define RTCEF_CLIENT 0x00000001")
- cpp_quote("#define RTCEF_REGISTRATION_STATE_CHANGE 0x00000002")
- cpp_quote("#define RTCEF_SESSION_STATE_CHANGE 0x00000004")
- cpp_quote("#define RTCEF_SESSION_OPERATION_COMPLETE 0x00000008")
- cpp_quote("#define RTCEF_PARTICIPANT_STATE_CHANGE 0x00000010")
- cpp_quote("#define RTCEF_MEDIA 0x00000020")
- cpp_quote("#define RTCEF_INTENSITY 0x00000040")
- cpp_quote("#define RTCEF_MESSAGING 0x00000080")
- cpp_quote("#define RTCEF_BUDDY 0x00000100")
- cpp_quote("#define RTCEF_WATCHER 0x00000200")
- cpp_quote("#define RTCEF_PROFILE 0x00000400")
- cpp_quote("#define RTCEF_ALL 0x000007FF")
- // Forward Definitions
- interface IRTCClient;
- interface IRTCClientPresence;
- interface IRTCClientProvisioning;
- interface IRTCProfile;
- interface IRTCSession;
- interface IRTCParticipant;
- interface IRTCEventNotification;
- interface IRTCEnumProfiles;
- interface IRTCEnumParticipants;
- interface IRTCCollection;
- interface IRTCEnumBuddies;
- interface IRTCBuddy;
- interface IRTCEnumWatchers;
- interface IRTCWatcher;
- [
- object,
- uuid(07829e45-9a34-408e-a011-bddf13487cd1),
- helpstring("IRTCClient Interface"),
- pointer_default(unique)
- ]
- interface IRTCClient : IUnknown
- {
- // initialize, shutdown
-
- [helpstring("method Initialize")]
- HRESULT Initialize();
- [helpstring("method Shutdown")]
- HRESULT Shutdown();
- [helpstring("method PrepareForShutdown")]
- HRESULT PrepareForShutdown();
- // events
- [propput, helpstring("property EventFilter")]
- HRESULT EventFilter(
- [in] long lFilter
- );
- [propget, helpstring("property EventFilter")]
- HRESULT EventFilter(
- [out, retval] long * plFilter
- );
- // media preferences/capabilities
- [helpstring("method SetPreferredMediaTypes")]
- HRESULT SetPreferredMediaTypes(
- [in] long lMediaTypes,
- [in] VARIANT_BOOL fPersistent
- );
- [propget, helpstring("property PreferredMediaTypes")]
- HRESULT PreferredMediaTypes(
- [out, retval] long * plMediaTypes
- );
-
- [propget, helpstring("property MediaCapabilities")]
- HRESULT MediaCapabilities(
- [out, retval] long * plMediaTypes
- );
- // sessions
-
- [helpstring("method CreateSession")]
- HRESULT CreateSession(
- [in] RTC_SESSION_TYPE enType,
- [in] BSTR bstrLocalPhoneURI,
- [in] IRTCProfile * pProfile,
- [in] long lFlags,
- [out, retval] IRTCSession ** ppSession
- );
- // listen mode
- [propput, helpstring("property ListenForIncomingSessions")]
- HRESULT ListenForIncomingSessions(
- [in] RTC_LISTEN_MODE enListen
- );
- [propget, helpstring("property ListenForIncomingSessions")]
- HRESULT ListenForIncomingSessions(
- [out, retval] RTC_LISTEN_MODE * penListen
- );
- // addresses & ports
- [propget, helpstring("property NetworkAddresses")]
- HRESULT NetworkAddresses(
- [in] VARIANT_BOOL fTCP,
- [in] VARIANT_BOOL fExternal,
- [out, retval] VARIANT * pvAddresses
- );
-
- // audio control
- [propput, helpstring("property Volume")]
- HRESULT Volume(
- [in] RTC_AUDIO_DEVICE enDevice,
- [in] long lVolume
- );
- [propget, helpstring("property Volume")]
- HRESULT Volume(
- [in] RTC_AUDIO_DEVICE enDevice,
- [out, retval] long * plVolume
- );
- [propput, helpstring("property AudioMuted")]
- HRESULT AudioMuted(
- [in] RTC_AUDIO_DEVICE enDevice,
- [in] VARIANT_BOOL fMuted
- );
- [propget, helpstring("property AudioMuted")]
- HRESULT AudioMuted(
- [in] RTC_AUDIO_DEVICE enDevice,
- [out, retval] VARIANT_BOOL * pfMuted
- );
- // video window
-
- [propget, helpstring("property IVideoWindow")]
- HRESULT IVideoWindow(
- [in] RTC_VIDEO_DEVICE enDevice,
- [out, retval] IVideoWindow ** ppIVideoWindow
- );
- // audio/video settings
- [propput, helpstring("property PreferredAudioDevice")]
- HRESULT PreferredAudioDevice(
- [in] RTC_AUDIO_DEVICE enDevice,
- [in] BSTR bstrDeviceName
- );
- [propget, helpstring("property PreferredAudioDevice")]
- HRESULT PreferredAudioDevice(
- [in] RTC_AUDIO_DEVICE enDevice,
- [out, retval] BSTR * pbstrDeviceName
- );
-
- [propput, helpstring("property PreferredVolume")]
- HRESULT PreferredVolume(
- [in] RTC_AUDIO_DEVICE enDevice,
- [in] long lVolume
- );
- [propget, helpstring("property PreferredVolume")]
- HRESULT PreferredVolume(
- [in] RTC_AUDIO_DEVICE enDevice,
- [out, retval] long * plVolume
- );
- [propput, helpstring("property PreferredAEC")]
- HRESULT PreferredAEC(
- [in] VARIANT_BOOL bEnable
- );
- [propget, helpstring("property PreferredAEC")]
- HRESULT PreferredAEC(
- [out, retval] VARIANT_BOOL * pbEnabled
- );
-
- [propput, helpstring("property PreferredVideoDevice")]
- HRESULT PreferredVideoDevice(
- [in] BSTR bstrDeviceName
- );
- [propget, helpstring("property PreferredVideoDevice")]
- HRESULT PreferredVideoDevice(
- [out, retval] BSTR * pbstrDeviceName
- );
- // active media
-
- [propget, helpstring("property ActiveMedia")]
- HRESULT ActiveMedia(
- [out, retval] long * plMediaType
- );
- // Network quality
-
- [propput, helpstring("property MaxBitrate")]
- HRESULT MaxBitrate(
- [in] long lMaxBitrate
- );
- [propget, helpstring("property MaxBitrate")]
- HRESULT MaxBitrate(
- [out, retval] long * plMaxBitrate
- );
- [propput, helpstring("property TemporalSpatialTradeOff")]
- HRESULT TemporalSpatialTradeOff(
- [in] long lValue
- );
- [propget, helpstring("property TemporalSpatialTradeOff")]
- HRESULT TemporalSpatialTradeOff(
- [out, retval] long * plValue
- );
- [propget, helpstring("property NetworkQuality")]
- HRESULT NetworkQuality(
- [out, retval] long * plNetworkQuality
- );
- // T120 applet control
- [helpstring("method StartT120Applet")]
- HRESULT StartT120Applet(
- [in] RTC_T120_APPLET enApplet
- );
- [helpstring("method StopT120Applets")]
- HRESULT StopT120Applets();
- [propget, helpstring("property IsT120AppletRunning")]
- HRESULT IsT120AppletRunning(
- [in] RTC_T120_APPLET enApplet,
- [out, retval] VARIANT_BOOL * pfRunning
- );
- // local user info
- [propget, helpstring("property LocalUserURI")]
- HRESULT LocalUserURI(
- [out, retval] BSTR * pbstrUserURI
- );
- [propput, helpstring("property LocalUserURI")]
- HRESULT LocalUserURI(
- [in] BSTR bstrUserURI
- );
- [propget, helpstring("property LocalUserName")]
- HRESULT LocalUserName(
- [out, retval] BSTR * pbstrUserName
- );
- [propput, helpstring("property LocalUserName")]
- HRESULT LocalUserName(
- [in] BSTR bstrUserName
- );
- // other
-
- [helpstring("method PlayRing")]
- HRESULT PlayRing(
- [in] RTC_RING_TYPE enType,
- [in] VARIANT_BOOL bPlay
- );
-
- [helpstring("method SendDTMF")]
- HRESULT SendDTMF(
- [in] RTC_DTMF enDTMF
- );
- [helpstring("method InvokeTuningWizard")]
- HRESULT InvokeTuningWizard(
- [in] OAHWND hwndParent
- );
- [propget, helpstring("property IsTuned")]
- HRESULT IsTuned(
- [out, retval] VARIANT_BOOL * pfTuned
- );
- }
- [
- object,
- uuid(11c3cbcc-0744-42d1-968a-51aa1bb274c6),
- helpstring("IRTCClientPresence Interface"),
- pointer_default(unique)
- ]
- interface IRTCClientPresence : IUnknown
- {
- // enable
- [helpstring("method EnablePresence")]
- HRESULT EnablePresence(
- [in] VARIANT_BOOL fUseStorage,
- [in] VARIANT varStorage
- );
- // snapshots & import/export
-
- [helpstring("method Export")]
- HRESULT Export(
- [in] VARIANT varStorage
- );
-
- [helpstring("method Import")]
- HRESULT Import(
- [in] VARIANT varStorage,
- [in] VARIANT_BOOL fReplaceAll
- );
- // buddies
- [hidden, helpstring("method EnumerateBuddies")]
- HRESULT EnumerateBuddies(
- [out, retval] IRTCEnumBuddies ** ppEnum
- );
- [propget, helpstring("property Buddies")]
- HRESULT Buddies(
- [out, retval] IRTCCollection ** ppCollection
- );
- [propget, helpstring("property Buddy")]
- HRESULT Buddy(
- [in] BSTR bstrPresentityURI,
- [out, retval] IRTCBuddy **ppBuddy
- );
- [helpstring("method AddBuddy")]
- HRESULT AddBuddy(
- [in] BSTR bstrPresentityURI,
- [in] BSTR bstrUserName,
- [in] BSTR bstrData,
- [in] VARIANT_BOOL fPersistent,
- [in] IRTCProfile * pProfile,
- [in] long lFlags,
- [out, retval] IRTCBuddy **ppBuddy
- );
-
- [helpstring("method RemoveBuddy")]
- HRESULT RemoveBuddy(
- [in] IRTCBuddy *pBuddy
- );
- // watchers
- [hidden, helpstring("method EnumerateWatchers")]
- HRESULT EnumerateWatchers(
- [out, retval] IRTCEnumWatchers ** ppEnum
- );
- [propget, helpstring("property Watchers")]
- HRESULT Watchers(
- [out, retval] IRTCCollection ** ppCollection
- );
- [propget, helpstring("property Watcher")]
- HRESULT Watcher(
- [in] BSTR bstrPresentityURI,
- [out, retval] IRTCWatcher **ppWatcher
- );
- [helpstring("method AddWatcher")]
- HRESULT AddWatcher(
- [in] BSTR bstrPresentityURI,
- [in] BSTR bstrUserName,
- [in] BSTR bstrData,
- [in] VARIANT_BOOL fBlocked,
- [in] VARIANT_BOOL fPersistent,
- [out, retval] IRTCWatcher **ppWatcher
- );
-
- [helpstring("method RemoveWatcher")]
- HRESULT RemoveWatcher(
- [in] IRTCWatcher *pWatcher
- );
-
- [helpstring("method SetLocalPresenceInfo")]
- HRESULT SetLocalPresenceInfo(
- [in] RTC_PRESENCE_STATUS enStatus,
- [in] BSTR bstrNotes
- );
- // policies
- [propget, helpstring("property OfferWatcherMode")]
- HRESULT OfferWatcherMode(
- [out, retval] RTC_OFFER_WATCHER_MODE * penMode
- );
- [propput, helpstring("property OfferWatcherMode")]
- HRESULT OfferWatcherMode(
- [in] RTC_OFFER_WATCHER_MODE enMode
- );
- [propget, helpstring("property PrivacyMode")]
- HRESULT PrivacyMode(
- [out, retval] RTC_PRIVACY_MODE * penMode
- );
- [propput, helpstring("property PrivacyMode")]
- HRESULT PrivacyMode(
- [in] RTC_PRIVACY_MODE enMode
- );
- }
- [
- object,
- uuid(B9F5CF06-65B9-4a80-A0E6-73CAE3EF3822),
- helpstring("IRTCClientProvisioning Interface"),
- pointer_default(unique)
- ]
- interface IRTCClientProvisioning : IUnknown
- {
- [helpstring("method CreateProfile")]
- HRESULT CreateProfile(
- [in] BSTR bstrProfileXML,
- [out, retval] IRTCProfile ** ppProfile
- );
- [helpstring("method EnableProfile")]
- HRESULT EnableProfile(
- [in] IRTCProfile * pProfile,
- [in] long lRegisterFlags
- );
- [helpstring("method DisableProfile")]
- HRESULT DisableProfile(
- [in] IRTCProfile * pProfile
- );
- [hidden, helpstring("method EnumerateProfiles")]
- HRESULT EnumerateProfiles(
- [out, retval] IRTCEnumProfiles ** ppEnum
- );
- [propget, helpstring("property Profiles")]
- HRESULT Profiles(
- [out, retval] IRTCCollection ** ppCollection
- );
- [helpstring("method GetProfile")]
- HRESULT GetProfile(
- [in] BSTR bstrUserAccount,
- [in] BSTR bstrUserPassword,
- [in] BSTR bstrUserURI,
- [in] BSTR bstrServer,
- [in] long lTransport,
- [in] long lCookie
- );
- [propget, helpstring("property SessionCapabilities")]
- HRESULT SessionCapabilities(
- [out, retval] long * plSupportedSessions);
- };
- [
- object,
- uuid(d07eca9e-4062-4dd4-9e7d-722a49ba7303),
- helpstring("IRTCProfile Interface"),
- pointer_default(unique)
- ]
- interface IRTCProfile : IUnknown
- {
- [propget, helpstring("property Key")]
- HRESULT Key(
- [out, retval] BSTR * pbstrKey);
- [propget, helpstring("property Name")]
- HRESULT Name(
- [out, retval] BSTR * pbstrName);
- [propget, helpstring("property XML")]
- HRESULT XML(
- [out, retval] BSTR * pbstrXML);
- // Provider
- [propget, helpstring("property ProviderName")]
- HRESULT ProviderName(
- [out, retval] BSTR * pbstrName);
- [propget, helpstring("property ProviderURI")]
- HRESULT ProviderURI(
- [in] RTC_PROVIDER_URI enURI,
- [out, retval] BSTR * pbstrURI);
- [propget, helpstring("property ProviderData")]
- HRESULT ProviderData(
- [out, retval] BSTR * pbstrData);
- // Client
- [propget, helpstring("property ClientName")]
- HRESULT ClientName(
- [out, retval] BSTR * pbstrName);
- [propget, helpstring("property ClientBanner")]
- HRESULT ClientBanner(
- [out, retval] VARIANT_BOOL * pfBanner);
- [propget, helpstring("property ClientMinVer")]
- HRESULT ClientMinVer(
- [out, retval] BSTR * pbstrMinVer);
- [propget, helpstring("property ClientCurVer")]
- HRESULT ClientCurVer(
- [out, retval] BSTR * pbstrCurVer);
- [propget, helpstring("property ClientUpdateURI")]
- HRESULT ClientUpdateURI(
- [out, retval] BSTR * pbstrUpdateURI);
- [propget, helpstring("property ClientData")]
- HRESULT ClientData(
- [out, retval] BSTR * pbstrData);
- // User
- [propget, helpstring("property UserURI")]
- HRESULT UserURI(
- [out, retval] BSTR * pbstrUserURI);
- [propget, helpstring("property UserName")]
- HRESULT UserName(
- [out, retval] BSTR * pbstrUserName);
-
- [propget, helpstring("property UserAccount")]
- HRESULT UserAccount(
- [out, retval] BSTR * pbstrUserAccount);
- [helpstring("method SetCredentials")]
- HRESULT SetCredentials(
- [in] BSTR bstrUserURI,
- [in] BSTR bstrUserAccount,
- [in] BSTR bstrPassword);
- // Server
-
- [propget, helpstring("property SessionCapabilities")]
- HRESULT SessionCapabilities(
- [out, retval] long * plSupportedSessions);
- // Registration
- [propget, helpstring("property State")]
- HRESULT State(
- [out, retval] RTC_REGISTRATION_STATE * penState);
- };
- [
- object,
- uuid(387c8086-99be-42fb-9973-7c0fc0ca9fa8),
- helpstring("IRTCSession Interface"),
- pointer_default(unique)
- ]
- interface IRTCSession : IUnknown
- {
- // properties
- [propget, helpstring("property Client")]
- HRESULT Client(
- [out, retval] IRTCClient **ppClient
- );
- [propget, helpstring("property State")]
- HRESULT State(
- [out, retval] RTC_SESSION_STATE * penState
- );
-
- [propget, helpstring("property Type")]
- HRESULT Type(
- [out, retval] RTC_SESSION_TYPE * penType
- );
-
- [propget, helpstring("property Profile")]
- HRESULT Profile(
- [out, retval] IRTCProfile ** ppProfile
- );
-
- [propget, helpstring("property Participants")]
- HRESULT Participants(
- [out, retval] IRTCCollection ** ppCollection
- );
-
- // call control
- [helpstring("method Answer")]
- HRESULT Answer();
- [helpstring("method Terminate")]
- HRESULT Terminate(
- [in] RTC_TERMINATE_REASON enReason
- );
- [helpstring("method Redirect")]
- HRESULT Redirect(
- [in] RTC_SESSION_TYPE enType,
- [in] BSTR bstrLocalPhoneURI,
- [in] IRTCProfile * pProfile,
- [in] long lFlags
- );
- [helpstring("method AddParticipant")]
- HRESULT AddParticipant(
- [in] BSTR bstrAddress,
- [in] BSTR bstrName,
- [out, retval] IRTCParticipant ** ppParticipant
- );
- [helpstring("method RemoveParticipant")]
- HRESULT RemoveParticipant(
- [in] IRTCParticipant * pParticipant
- );
- [hidden, helpstring("method EnumerateParticipants")]
- HRESULT EnumerateParticipants(
- [out, retval] IRTCEnumParticipants ** ppEnum
- );
-
- [propget, helpstring("property CanAddParticipants")]
- HRESULT CanAddParticipants(
- [out, retval] VARIANT_BOOL * pfCanAdd
- );
- // redirection context control
- [propget, helpstring("property RedirectedUserURI")]
- HRESULT RedirectedUserURI(
- [out, retval] BSTR * pbstrUserURI
- );
- [propget, helpstring("property RedirectedUserName")]
- HRESULT RedirectedUserName(
- [out, retval] BSTR * pbstrUserName
- );
-
- [helpstring("method NextRedirectedUser")]
- HRESULT NextRedirectedUser();
- // instant messaging
- [helpstring("method SendMessage")]
- HRESULT SendMessage(
- [in] BSTR bstrMessageHeader,
- [in] BSTR bstrMessage,
- [in] long lCookie
- );
-
- [helpstring("method SendMessageStatus")]
- HRESULT SendMessageStatus(
- [in] RTC_MESSAGING_USER_STATUS enUserStatus,
- [in] long lCookie
- );
- // stream & custom media control
- [helpstring("method AddStream")]
- HRESULT AddStream(
- [in] long lMediaType,
- [in] long lCookie
- );
-
- [helpstring("method RemoveStream")]
- HRESULT RemoveStream(
- [in] long lMediaType,
- [in] long lCookie
- );
- // keys
- [propput, helpstring("property EncryptionKey")]
- HRESULT EncryptionKey(
- [in] long lMediaType,
- [in] BSTR EncryptionKey
- );
- };
- [
- object,
- uuid(ae86add5-26b1-4414-af1d-b94cd938d739),
- helpstring("IRTCParticipant Interface"),
- pointer_default(unique)
- ]
- interface IRTCParticipant : IUnknown
- {
- [propget, helpstring("property UserURI")]
- HRESULT UserURI(
- [out, retval] BSTR * pbstrUserURI
- );
- [propget, helpstring("property Name")]
- HRESULT Name(
- [out, retval] BSTR * pbstrName
- );
- [propget, helpstring("property Removable")]
- HRESULT Removable(
- [out, retval] VARIANT_BOOL * pfRemovable
- );
- [propget, helpstring("property State")]
- HRESULT State(
- [out, retval] RTC_PARTICIPANT_STATE * penState
- );
-
- [propget, helpstring("property Session")]
- HRESULT Session(
- [out, retval] IRTCSession ** ppSession
- );
- };
- [
- object,
- uuid(D6D5AB3B-770E-43e8-800A-79B062395FCA),
- dual,
- helpstring("IRTCProfileEvent"),
- pointer_default(unique)
- ]
- interface IRTCProfileEvent : IDispatch
- {
- [propget, id(1), helpstring("property Profile")]
- HRESULT Profile( [out, retval] IRTCProfile ** ppProfile );
- [propget, id(2), helpstring("property Cookie")]
- HRESULT Cookie( [out, retval] long * plCookie );
-
- [propget, id(3), helpstring("property StatusCode")]
- HRESULT StatusCode( [out, retval] long * plStatusCode );
- }
- [
- object,
- uuid(2b493b7a-3cba-4170-9c8b-76a9dacdd644),
- dual,
- helpstring("IRTCClientEvent"),
- pointer_default(unique)
- ]
- interface IRTCClientEvent : IDispatch
- {
- [propget, id(1), helpstring("property EventType")]
- HRESULT EventType( [out, retval] RTC_CLIENT_EVENT_TYPE * penEventType );
-
- [propget, id(2), helpstring("property Client")]
- HRESULT Client( [out, retval] IRTCClient **ppClient );
- }
- [
- object,
- uuid(62d0991b-50ab-4f02-b948-ca94f26f8f95),
- dual,
- helpstring("IRTCRegistrationStateChangeEvent"),
- pointer_default(unique)
- ]
- interface IRTCRegistrationStateChangeEvent : IDispatch
- {
- [propget, id(1), helpstring("property Profile")]
- HRESULT Profile( [out, retval] IRTCProfile ** ppProfile );
-
- [propget, id(2), helpstring("property State")]
- HRESULT State( [out, retval] RTC_REGISTRATION_STATE * penState );
- [propget, id(3), helpstring("property StatusCode")]
- HRESULT StatusCode( [out, retval] long * plStatusCode );
- [propget, id(4), helpstring("property StatusText")]
- HRESULT StatusText( [out, retval] BSTR * pbstrStatusText );
- }
- [
- object,
- uuid(b5bad703-5952-48b3-9321-7f4500521506),
- dual,
- helpstring("IRTCSessionStateChangeEvent"),
- pointer_default(unique)
- ]
- interface IRTCSessionStateChangeEvent : IDispatch
- {
- [propget, id(1), helpstring("property Session")]
- HRESULT Session( [out, retval] IRTCSession ** ppSession );
-
- [propget, id(2), helpstring("property State")]
- HRESULT State( [out, retval] RTC_SESSION_STATE * penState );
- [propget, id(3), helpstring("property StatusCode")]
- HRESULT StatusCode( [out, retval] long * plStatusCode );
- [propget, id(4), helpstring("property StatusText")]
- HRESULT StatusText( [out, retval] BSTR * pbstrStatusText );
- }
- [
- object,
- uuid(a6bff4c0-f7c8-4d3c-9a41-3550f78a95b0),
- dual,
- helpstring("IRTCSessionOperationCompleteEvent"),
- pointer_default(unique)
- ]
- interface IRTCSessionOperationCompleteEvent : IDispatch
- {
- [propget, id(1), helpstring("property Session")]
- HRESULT Session( [out, retval] IRTCSession ** ppSession );
-
- [propget, id(2), helpstring("property Cookie")]
- HRESULT Cookie( [out, retval] long * plCookie );
- [propget, id(3), helpstring("property StatusCode")]
- HRESULT StatusCode( [out, retval] long * plStatusCode );
- [propget, id(4), helpstring("property StatusText")]
- HRESULT StatusText( [out, retval] BSTR * pbstrStatusText );
- }
- [
- object,
- uuid(09bcb597-f0fa-48f9-b420-468cea7fde04),
- dual,
- helpstring("IRTCParticipantStateChangeEvent"),
- pointer_default(unique)
- ]
- interface IRTCParticipantStateChangeEvent : IDispatch
- {
- [propget, id(1), helpstring("property Participant")]
- HRESULT Participant( [out, retval] IRTCParticipant ** ppParticipant );
-
- [propget, id(2), helpstring("property State")]
- HRESULT State( [out, retval] RTC_PARTICIPANT_STATE * penState );
- [propget, id(3), helpstring("property StatusCode")]
- HRESULT StatusCode( [out, retval] long * plStatusCode );
- }
- [
- object,
- uuid(099944fb-bcda-453e-8c41-e13da2adf7f3),
- dual,
- helpstring("IRTCMediaEvent"),
- pointer_default(unique)
- ]
- interface IRTCMediaEvent : IDispatch
- {
- [propget, id(1), helpstring("property MediaType")]
- HRESULT MediaType( [out, retval] long * pMediaType );
-
- [propget, id(2), helpstring("property EventType")]
- HRESULT EventType( [out, retval] RTC_MEDIA_EVENT_TYPE * penEventType );
- [propget, id(3), helpstring("property EventReason")]
- HRESULT EventReason( [out, retval] RTC_MEDIA_EVENT_REASON * penEventReason );
- }
- [
- object,
- uuid(4c23bf51-390c-4992-a41d-41eec05b2a4b),
- dual,
- helpstring("IRTCIntensityEvent"),
- pointer_default(unique)
- ]
- interface IRTCIntensityEvent : IDispatch
- {
- [propget, id(1), helpstring("property Level")]
- HRESULT Level( [out, retval] long * plLevel );
-
- [propget, id(2), helpstring("property Min")]
- HRESULT Min( [out, retval] long * plMin );
- [propget, id(3), helpstring("property Max")]
- HRESULT Max( [out, retval] long * plMax );
- [propget, id(4), helpstring("property Direction")]
- HRESULT Direction( [out, retval] RTC_AUDIO_DEVICE * penDirection );
- }
- [
- object,
- uuid(d3609541-1b29-4de5-a4ad-5aebaf319512),
- dual,
- helpstring("IRTCMessagingEvent"),
- pointer_default(unique)
- ]
- interface IRTCMessagingEvent : IDispatch
- {
- [propget, id(1), helpstring("property Session")]
- HRESULT Session( [out, retval] IRTCSession ** ppSession );
- [propget, id(2), helpstring("property Participant")]
- HRESULT Participant( [out, retval] IRTCParticipant ** ppParticipant );
-
- [propget, id(3), helpstring("property Type")]
- HRESULT EventType( [out, retval] RTC_MESSAGING_EVENT_TYPE * penEventType );
-
- [propget, id(4), helpstring("property Message")]
- HRESULT Message( [out, retval] BSTR * pbstrMessage );
- [propget, id(5), helpstring("property MessageHeader")]
- HRESULT MessageHeader( [out, retval] BSTR * pbstrMessageHeader );
-
- [propget, id(6), helpstring("property UserStatus")]
- HRESULT UserStatus( [out, retval] RTC_MESSAGING_USER_STATUS * penUserStatus );
- }
- [
- object,
- uuid(f36d755d-17e6-404e-954f-0fc07574c78d),
- dual,
- helpstring("IRTCBuddyEvent"),
- pointer_default(unique)
- ]
- interface IRTCBuddyEvent : IDispatch
- {
- [propget, id(1), helpstring("property Buddy")]
- HRESULT Buddy( [out, retval] IRTCBuddy ** ppBuddy );
- }
- [
- object,
- uuid(f30d7261-587a-424f-822c-312788f43548),
- dual,
- helpstring("IRTCWatcherEvent"),
- pointer_default(unique)
- ]
- interface IRTCWatcherEvent : IDispatch
- {
- [propget, id(1), helpstring("property Watcher")]
- HRESULT Watcher( [out, retval] IRTCWatcher ** ppWatcher );
- }
- [
- object,
- uuid(EC7C8096-B918-4044-94F1-E4FBA0361D5C),
- helpstring("IRTCCollection interface"),
- dual
- ]
- interface IRTCCollection : IDispatch
- {
- [propget, helpstring("Returns number of items in collection.")]
- HRESULT Count(
- [out, retval] long * lCount
- );
- [propget, id(DISPID_VALUE),
- helpstring("Given an index, returns an item in the collection.")]
- HRESULT Item(
- [in] long Index,
- [out, retval] VARIANT * pVariant
- );
- [propget, restricted, id(DISPID_NEWENUM),
- helpstring("returns an enumerator for the collection.")]
- HRESULT _NewEnum(
- [out, retval] IUnknown ** ppNewEnum
- );
- }
- [
- object,
- uuid(fcd56f29-4a4f-41b2-ba5c-f5bccc060bf6),
- hidden,
- helpstring("IRTCEnumParticipants interface"),
- pointer_default(unique)
- ]
- interface IRTCEnumParticipants : IUnknown
- {
- HRESULT Next(
- [in] ULONG celt,
- [out, size_is(celt)] IRTCParticipant ** ppElements,
- [in,out,ptr] ULONG * pceltFetched
- );
- HRESULT Reset( void );
- HRESULT Skip (
- [in] ULONG celt
- );
- HRESULT Clone (
- [out, retval] IRTCEnumParticipants ** ppEnum
- );
- }
- [
- object,
- uuid(29b7c41c-ed82-4bca-84ad-39d5101b58e3),
- hidden,
- helpstring("IRTCEnumProfiles interface"),
- pointer_default(unique)
- ]
- interface IRTCEnumProfiles : IUnknown
- {
- HRESULT Next(
- [in] ULONG celt,
- [out, size_is(celt)] IRTCProfile ** ppElements,
- [in,out,ptr] ULONG * pceltFetched
- );
- HRESULT Reset( void );
- HRESULT Skip (
- [in] ULONG celt
- );
- HRESULT Clone (
- [out, retval] IRTCEnumProfiles ** ppEnum
- );
- }
- [
- object,
- uuid(f7296917-5569-4b3b-b3af-98d1144b2b87),
- hidden,
- helpstring("IRTCEnumBuddies interface"),
- pointer_default(unique)
- ]
- interface IRTCEnumBuddies : IUnknown
- {
- HRESULT Next(
- [in] ULONG celt,
- [out, size_is(celt)] IRTCBuddy ** ppElements,
- [in,out,ptr] ULONG * pceltFetched
- );
- HRESULT Reset( void );
- HRESULT Skip (
- [in] ULONG celt
- );
- HRESULT Clone (
- [out, retval] IRTCEnumBuddies ** ppEnum
- );
- }
- [
- object,
- uuid(a87d55d7-db74-4ed1-9ca4-77a0e41b413e),
- hidden,
- helpstring("IRTCEnumWatchers interface"),
- pointer_default(unique)
- ]
- interface IRTCEnumWatchers : IUnknown
- {
- HRESULT Next(
- [in] ULONG celt,
- [out, size_is(celt)] IRTCWatcher ** ppElements,
- [in,out,ptr] ULONG * pceltFetched
- );
- HRESULT Reset( void );
- HRESULT Skip (
- [in] ULONG celt
- );
- HRESULT Clone (
- [out, retval] IRTCEnumWatchers ** ppEnum
- );
- }
- [
- object,
- uuid(8b22f92c-cd90-42db-a733-212205c3e3df),
- helpstring("IRTCPresenceContact Interface"),
- pointer_default(unique)
- ]
- interface IRTCPresenceContact : IUnknown
- {
- [propget, helpstring("property PresentityURI")]
- HRESULT PresentityURI(
- [out, retval] BSTR * pbstrPresentityURI
- );
- [propput, helpstring("property PresentityURI")]
- HRESULT PresentityURI(
- [in] BSTR bstrPresentityURI
- );
- [propget, helpstring("property Name")]
- HRESULT Name(
- [out, retval] BSTR * pbstrName
- );
-
- [propput, helpstring("property Name")]
- HRESULT Name(
- [in] BSTR bstrName
- );
-
- [propget, helpstring("property Data")]
- HRESULT Data(
- [out, retval] BSTR * pbstrData
- );
-
- [propput, helpstring("property Data")]
- HRESULT Data(
- [in] BSTR bstrData
- );
-
- [propget, helpstring("property Persistent")]
- HRESULT Persistent(
- [out, retval] VARIANT_BOOL *pfPersistent
- );
-
- [propput, helpstring("property Persistent")]
- HRESULT Persistent(
- [in] VARIANT_BOOL fPersistent
- );
-
- };
- [
- object,
- uuid(fcb136c8-7b90-4e0c-befe-56edf0ba6f1c),
- helpstring("IRTCBuddy Interface"),
- pointer_default(unique)
- ]
- interface IRTCBuddy : IRTCPresenceContact
- {
- [propget, helpstring("property Status")]
- HRESULT Status(
- [out, retval] RTC_PRESENCE_STATUS * penStatus
- );
-
- [propget, helpstring("property Notes")]
- HRESULT Notes(
- [out, retval] BSTR * pbstrNotes
- );
- };
- [
- object,
- uuid(c7cedad8-346b-4d1b-ac02-a2088df9be4f),
- helpstring("IRTCWatcher Interface"),
- pointer_default(unique)
- ]
- interface IRTCWatcher : IRTCPresenceContact
- {
- [propget, helpstring("property State")]
- HRESULT State(
- [out, retval] RTC_WATCHER_STATE * penState
- );
-
- [propput, helpstring("property State")]
- HRESULT State(
- [in] RTC_WATCHER_STATE enState
- );
-
- };
- [
- object,
- uuid(13fa24c7-5748-4b21-91f5-7397609ce747),
- helpstring("IRTCEventNotification Interface"),
- oleautomation,
- pointer_default(unique)
- ]
- interface IRTCEventNotification : IUnknown
- {
- [id(1), helpstring("method Event")]
- HRESULT Event(
- [in] RTC_EVENT RTCEvent,
- [in] IDispatch * pEvent
- );
- }
- [
- uuid(176ddfbe-fec0-4d55-bc87-84cff1ef7f91),
- helpstring("IRTCDispatchEventNotification Interface")
- ]
- dispinterface IRTCDispatchEventNotification
- {
- properties:
- methods:
- [id(1), helpstring("method Event")]
- HRESULT Event(
- [in] RTC_EVENT RTCEvent,
- [in] IDispatch * pEvent
- );
- };
- [
- uuid(cd260094-de10-4aee-ac73-ef87f6e12683),
- version(1.0),
- helpstring("RTCCore 1.0 Type Library")
- ]
- library RTCCORELib
- {
- importlib("stdole32.tlb");
- interface IRTCProfile;
- interface IRTCSession;
- interface IRTCParticipant;
- interface IRTCEnumProfiles;
- interface IRTCEnumParticipants;
- interface IRTCCollection;
- interface IRTCEnumBuddies;
- interface IRTCBuddy;
- interface IRTCEnumWatchers;
- interface IRTCWatcher;
- interface IRTCEventNotification;
- interface IRTCClientEvent;
- interface IRTCRegistrationStateChangeEvent;
- interface IRTCSessionStateChangeEvent;
- interface IRTCSessionOperationCompleteEvent;
- interface IRTCParticipantStateChangeEvent;
- interface IRTCMediaEvent;
- interface IRTCIntensityEvent;
- interface IRTCMessagingEvent;
- interface IRTCBuddyEvent;
- interface IRTCWatcherEvent;
- dispinterface IRTCDispatchEventNotification;
- [
- uuid(7a42ea29-a2b7-40c4-b091-f6f024aa89be),
- helpstring("RTCClient Class")
- ]
- coclass RTCClient
- {
- [default] interface IRTCClient;
- interface IRTCClientPresence;
- interface IRTCClientProvisioning;
- [default, source] dispinterface IRTCDispatchEventNotification;
- [defaultvtable, source] interface IRTCEventNotification;
- };
- };