// // Copyright (c) Microsoft Corporation. All rights reserved. // cpp_quote("// Copyright (c) Microsoft Corporation. All rights reserved.") // // 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, RTCE_USERSEARCH, RTCE_INFO, RTCE_GROUP, RTCE_MEDIA_REQUEST, RTCE_ROAMING, RTCE_PRESENCE_PROPERTY, RTCE_PRESENCE_DATA, RTCE_PRESENCE_STATUS, RTCE_SESSION_REFER_STATUS, RTCE_SESSION_REFERRED, RTCE_REINVITE } 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_BUDDY_EVENT_TYPE { RTCBET_BUDDY_ADD, RTCBET_BUDDY_REMOVE, RTCBET_BUDDY_UPDATE, RTCBET_BUDDY_STATE_CHANGE, RTCBET_BUDDY_ROAMED, RTCBET_BUDDY_SUBSCRIBED } RTC_BUDDY_EVENT_TYPE; typedef enum RTC_WATCHER_EVENT_TYPE { RTCWET_WATCHER_ADD, RTCWET_WATCHER_REMOVE, RTCWET_WATCHER_UPDATE, RTCWET_WATCHER_OFFERING, RTCWET_WATCHER_ROAMED } RTC_WATCHER_EVENT_TYPE; typedef enum RTC_GROUP_EVENT_TYPE { RTCGET_GROUP_ADD, RTCGET_GROUP_REMOVE, RTCGET_GROUP_UPDATE, RTCGET_GROUP_BUDDY_ADD, RTCGET_GROUP_BUDDY_REMOVE, RTCGET_GROUP_ROAMED } RTC_GROUP_EVENT_TYPE; typedef enum RTC_TERMINATE_REASON { RTCTR_NORMAL, RTCTR_DND, RTCTR_BUSY, RTCTR_REJECT, RTCTR_TIMEOUT, RTCTR_SHUTDOWN, RTCTR_INSUFFICIENT_SECURITY_LEVEL, RTCTR_NOT_SUPPORTED } 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, RTCSS_HOLD, RTCSS_REFER } 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, RTCWS_DENIED, RTCWS_PROMPT } RTC_WATCHER_STATE; typedef enum RTC_ACE_SCOPE { RTCAS_SCOPE_USER, RTCAS_SCOPE_DOMAIN, RTCAS_SCOPE_ALL } RTC_ACE_SCOPE; typedef enum RTC_OFFER_WATCHER_MODE { RTCOWM_OFFER_WATCHER_EVENT, RTCOWM_AUTOMATICALLY_ADD_WATCHER } RTC_OFFER_WATCHER_MODE; typedef enum RTC_WATCHER_MATCH_MODE { RTCWMM_EXACT_MATCH, RTCWMM_BEST_ACE_MATCH } RTC_WATCHER_MATCH_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, RTCST_MULTIPARTY_IM, RTCST_APPLICATION } 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_BUDDY_SUBSCRIPTION_TYPE { RTCBT_SUBSCRIBED, RTCBT_ALWAYS_OFFLINE, RTCBT_ALWAYS_ONLINE, RTCBT_POLL } RTC_BUDDY_SUBSCRIPTION_TYPE; 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, RTCMER_NO_PORT, RTCMER_PORT_MAPPING_FAILED, RTCMER_REMOTE_REQUEST } 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; typedef enum RTC_PORT_TYPE { RTCPT_AUDIO_RTP, RTCPT_AUDIO_RTCP, RTCPT_VIDEO_RTP, RTCPT_VIDEO_RTCP, RTCPT_SIP } RTC_PORT_TYPE; typedef enum RTC_USER_SEARCH_COLUMN { RTCUSC_URI, RTCUSC_DISPLAYNAME, RTCUSC_TITLE, RTCUSC_OFFICE, RTCUSC_PHONE, RTCUSC_COMPANY, RTCUSC_CITY, RTCUSC_STATE, RTCUSC_COUNTRY, RTCUSC_EMAIL }RTC_USER_SEARCH_COLUMN; typedef enum RTC_USER_SEARCH_PREFERENCE { RTCUSP_MAX_MATCHES, RTCUSP_TIME_LIMIT } RTC_USER_SEARCH_PREFERENCE; typedef enum RTC_ROAMING_EVENT_TYPE { RTCRET_BUDDY_ROAMING, RTCRET_WATCHER_ROAMING, RTCRET_PRESENCE_ROAMING, RTCRET_PROFILE_ROAMING, RTCRET_WPENDING_ROAMING } RTC_ROAMING_EVENT_TYPE; typedef enum RTC_PROFILE_EVENT_TYPE { RTCPFET_PROFILE_GET, RTCPFET_PROFILE_UPDATE } RTC_PROFILE_EVENT_TYPE; typedef enum RTC_ANSWER_MODE { RTCAM_OFFER_SESSION_EVENT, RTCAM_AUTOMATICALLY_ACCEPT, RTCAM_AUTOMATICALLY_REJECT, RTCAM_NOT_SUPPORTED } RTC_ANSWER_MODE; typedef enum RTC_SESSION_REFER_STATUS { RTCSRS_REFERRING, RTCSRS_ACCEPTED, RTCSRS_ERROR, RTCSRS_REJECTED, RTCSRS_DROPPED, RTCSRS_DONE } RTC_SESSION_REFER_STATUS; typedef enum RTC_PRESENCE_PROPERTY { RTCPP_PHONENUMBER, RTCPP_DISPLAYNAME, RTCPP_EMAIL, RTCPP_DEVICE_NAME, RTCPP_MULTIPLE } RTC_PRESENCE_PROPERTY; typedef enum RTC_SECURITY_TYPE { RTCSECT_AUDIO_VIDEO_MEDIA_ENCRYPTION, RTCSECT_T120_MEDIA_ENCRYPTION, } RTC_SECURITY_TYPE; typedef enum RTC_SECURITY_LEVEL { RTCSECL_UNSUPPORTED = 1, RTCSECL_SUPPORTED, RTCSECL_REQUIRED } RTC_SECURITY_LEVEL; typedef enum RTC_REINVITE_STATE { RTCRIN_INCOMING, RTCRIN_SUCCEEDED, RTCRIN_FAIL } RTC_REINVITE_STATE; // CreateSession flags 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") cpp_quote("#define RTCSI_MULTIPARTY_IM 0x00000010") cpp_quote("#define RTCSI_APPLICATION 0x00000020") // Transports cpp_quote("#define RTCTR_UDP 0x00000001") cpp_quote("#define RTCTR_TCP 0x00000002") cpp_quote("#define RTCTR_TLS 0x00000004") // Authentication cpp_quote("#define RTCAU_BASIC 0x00000001") cpp_quote("#define RTCAU_DIGEST 0x00000002") cpp_quote("#define RTCAU_NTLM 0x00000004") cpp_quote("#define RTCAU_KERBEROS 0x00000008") cpp_quote("#define RTCAU_USE_LOGON_CRED 0x00010000") // 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_NOTIFY 0x00000008") cpp_quote("#define RTCRF_REGISTER_ALL 0x0000000F") // Roaming Flags cpp_quote("#define RTCRMF_BUDDY_ROAMING 0x00000001") cpp_quote("#define RTCRMF_WATCHER_ROAMING 0x00000002") cpp_quote("#define RTCRMF_PRESENCE_ROAMING 0x00000004") cpp_quote("#define RTCRMF_PROFILE_ROAMING 0x00000008") cpp_quote("#define RTCRMF_ALL_ROAMING 0x0000000F") // 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_USERSEARCH 0x00000800") cpp_quote("#define RTCEF_INFO 0x00001000") cpp_quote("#define RTCEF_GROUP 0x00002000") cpp_quote("#define RTCEF_MEDIA_REQUEST 0x00004000") //skipping 0x00008000 because VB automatically equates &H8000 to -32768 instead of +32768 cpp_quote("#define RTCEF_ROAMING 0x00010000") cpp_quote("#define RTCEF_PRESENCE_PROPERTY 0x00020000") cpp_quote("#define RTCEF_BUDDY2 0x00040000") cpp_quote("#define RTCEF_WATCHER2 0x00080000") cpp_quote("#define RTCEF_SESSION_REFER_STATUS 0x00100000") cpp_quote("#define RTCEF_SESSION_REFERRED 0x00200000") cpp_quote("#define RTCEF_REINVITE 0x00400000") cpp_quote("#define RTCEF_PRESENCE_DATA 0x00800000") cpp_quote("#define RTCEF_PRESENCE_STATUS 0x01000000") cpp_quote("#define RTCEF_ALL 0x01FFFFFF") // Initialize Flags cpp_quote("#define RTCIF_DISABLE_MEDIA 0x00000001") cpp_quote("#define RTCIF_DISABLE_UPNP 0x00000002") cpp_quote("#define RTCIF_ENABLE_SERVER_CLASS 0x00000004") cpp_quote("#define RTCIF_DISABLE_STRICT_DNS 0x00000008") // Forward Definitions interface IRTCClient; interface IRTCClientPresence; interface IRTCClientPresence2; interface IRTCClientProvisioning; interface IRTCClientProvisioning2; interface IRTCEnumProfiles; interface IRTCProfile; interface IRTCProfile2; interface IRTCSession; interface IRTCSession2; interface IRTCSessionCallControl; interface IRTCParticipant; interface IRTCEventNotification; interface IRTCEnumParticipants; interface IRTCCollection; interface IRTCEnumBuddies; interface IRTCBuddy; interface IRTCBuddy2; interface IRTCEnumWatchers; interface IRTCWatcher; interface IRTCWatcher2; interface IRTCEnumGroups; interface IRTCBuddyGroup; interface IRTCUserSearch; interface IRTCUserSearchResultsEvent; interface IRTCEnumUserSearchResults; interface IRTCUserSearchQuery; interface IRTCUserSearchResult; interface IRTCPresenceStatusEvent; interface IRTCPresencePropertyEvent; interface IRTCPresenceDataEvent; interface IRTCSessionDescriptionManager; interface IRTCEnumPresenceDevices; interface IRTCPresenceDevice; [ 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(0C91D71D-1064-42da-BFA5-572BEB8EEA84), helpstring("IRTCClient2 Interface"), pointer_default(unique) ] interface IRTCClient2 : IRTCClient { [propput, helpstring("property AnswerMode")] HRESULT AnswerMode( [in] RTC_SESSION_TYPE enType, [in] RTC_ANSWER_MODE enMode ); [propget, helpstring("property AnswerMode")] HRESULT AnswerMode( [in] RTC_SESSION_TYPE enType, [out, retval] RTC_ANSWER_MODE * penMode ); [helpstring("method InvokeTuningWizardEx")] HRESULT InvokeTuningWizardEx( [in] OAHWND hwndParent, [in] VARIANT_BOOL fAllowAudio , [in] VARIANT_BOOL fAllowVideo ); [propget, helpstring("property Version")] HRESULT Version( [out, retval] long * plVersion ); [propput, helpstring("property ClientName")] HRESULT ClientName( [in] BSTR bstrClientName ); [propput, helpstring("property ClientCurVer")] HRESULT ClientCurVer( [in] BSTR bstrClientCurVer ); [helpstring("method InitializeEx")] HRESULT InitializeEx( [in] long lFlags ); [helpstring("method CreateSessionWithDescription")] HRESULT CreateSessionWithDescription( [in] BSTR bstrContentType, [in] BSTR bstrSessionDescription, [in] IRTCProfile * pProfile, [in] long lFlags, [out, retval] IRTCSession2 ** ppSession2 ); [helpstring("method SetSessionDescriptionManager")] HRESULT SetSessionDescriptionManager( [in] IRTCSessionDescriptionManager *pSessionDescriptionManager ); [propput, helpstring("property PreferredSecurityLevel")] HRESULT PreferredSecurityLevel( [in] RTC_SECURITY_TYPE enSecurityType, [in] RTC_SECURITY_LEVEL enSecurityLevel ); [propget, helpstring("property PreferredSecurityLevel")] HRESULT PreferredSecurityLevel( [in] RTC_SECURITY_TYPE enSecurityType, [out, retval] RTC_SECURITY_LEVEL * penSecurityLevel ); [propput, helpstring("property AllowedPorts")] HRESULT AllowedPorts( [in] long lTransport, [in] RTC_LISTEN_MODE enListenMode ); [propget, helpstring("property AllowedPorts")] HRESULT AllowedPorts( [in] long lTransport, [out, retval] RTC_LISTEN_MODE * penListenMode ); } [ 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(AD1809E8-62F7-4783-909A-29C9D2CB1D34), helpstring("IRTCClientPresence2 Interface"), pointer_default(unique) ] interface IRTCClientPresence2 : IRTCClientPresence { [helpstring("method EnablePresenceEx")] HRESULT EnablePresenceEx( [in] IRTCProfile * pProfile, [in] VARIANT varStorage, [in] long lFlags ); [helpstring("method DisablePresence")] HRESULT DisablePresence(); [helpstring("method AddGroup")] HRESULT AddGroup( [in] BSTR bstrGroupName, [in] BSTR bstrData, [in] IRTCProfile * pProfile, [in] long lFlags, [out, retval] IRTCBuddyGroup ** ppGroup ); [helpstring("method RemoveGroup")] HRESULT RemoveGroup( [in] IRTCBuddyGroup * pGroup ); [hidden, helpstring("method EnumerateGroups")] HRESULT EnumerateGroups( [out, retval] IRTCEnumGroups ** ppEnum ); [propget, helpstring("property Groups")] HRESULT Groups( [out, retval] IRTCCollection ** ppCollection ); [propget, helpstring("property Group")] HRESULT Group( [in] BSTR bstrGroupName, [out, retval] IRTCBuddyGroup ** ppGroup ); [helpstring("method AddWatcherEx")] HRESULT AddWatcherEx( [in] BSTR bstrPresentityURI, [in] BSTR bstrUserName, [in] BSTR bstrData, [in] RTC_WATCHER_STATE enState, [in] VARIANT_BOOL fPersistent, [in] RTC_ACE_SCOPE enScope, [in] IRTCProfile * pProfile, [in] long lFlags, [out, retval] IRTCWatcher2 **ppWatcher ); [propget, helpstring("property WatcherEx")] HRESULT WatcherEx( [in] RTC_WATCHER_MATCH_MODE enMode, [in] BSTR bstrPresentityURI, [out, retval] IRTCWatcher2 **ppWatcher ); [propput, helpstring("property PresenceProperty")] HRESULT PresenceProperty([in] RTC_PRESENCE_PROPERTY enProperty, [in] BSTR bstrProperty); [propget, helpstring("property PresenceProperty")] HRESULT PresenceProperty([in] RTC_PRESENCE_PROPERTY enProperty, [out,retval] BSTR *pbstrProperty); [helpstring("method SetPresenceData")] HRESULT SetPresenceData([in] BSTR bstrNamespace, [in] BSTR bstrData); [helpstring("method GetPresenceData")] HRESULT GetPresenceData([out] BSTR *pbstrNamespace, [out] BSTR *pbstrData); [helpstring("method GetLocalPresenceInfo")] HRESULT GetLocalPresenceInfo( [out] RTC_PRESENCE_STATUS *penStatus, [out] BSTR *pbstrNotes ); [helpstring("method AddBuddyEx")] HRESULT AddBuddyEx( [in] BSTR bstrPresentityURI, [in] BSTR bstrUserName, [in] BSTR bstrData, [in] VARIANT_BOOL fPersistent, [in] RTC_BUDDY_SUBSCRIPTION_TYPE enSubscriptionType, [in] IRTCProfile * pProfile, [in] long lFlags, [out, retval] IRTCBuddy2 **ppBuddy ); }; [ 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_PTR lCookie ); [propget, helpstring("property SessionCapabilities")] HRESULT SessionCapabilities( [out, retval] long * plSupportedSessions); }; [ object, uuid(A70909B5-F40E-4587-BB75-E6BC0845023E), helpstring("IRTCClientProvisioning2 Interface"), pointer_default(unique) ] interface IRTCClientProvisioning2 : IRTCClientProvisioning { [helpstring("method EnableProfileEx")] HRESULT EnableProfileEx( [in] IRTCProfile * pProfile, [in] long lRegisterFlags, [in] long lRoamingFlags ); }; [ 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(4B81F84E-BDC7-4184-9154-3CB2DD7917FB), helpstring("IRTCProfile2 Interface"), pointer_default(unique) ] interface IRTCProfile2 : IRTCProfile { [propget, helpstring("property Realm")] HRESULT Realm( [out, retval] BSTR * pbstrRealm ); [propput, helpstring("property Realm")] HRESULT Realm( [in] BSTR bstrRealm ); [propget, helpstring("property AllowedAuth")] HRESULT AllowedAuth( [out, retval] long * plAllowedAuth ); [propput, helpstring("property AllowedAuth")] HRESULT AllowedAuth( [in] long lAllowedAuth ); }; [ 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_PTR lCookie ); [helpstring("method SendMessageStatus")] HRESULT SendMessageStatus( [in] RTC_MESSAGING_USER_STATUS enUserStatus, [in] LONG_PTR lCookie ); // stream & custom media control [helpstring("method AddStream")] HRESULT AddStream( [in] long lMediaType, [in] LONG_PTR lCookie ); [helpstring("method RemoveStream")] HRESULT RemoveStream( [in] long lMediaType, [in] LONG_PTR lCookie ); // keys [propput, helpstring("property EncryptionKey")] HRESULT EncryptionKey( [in] long lMediaType, [in] BSTR EncryptionKey ); }; [ object, uuid(17D7CDFC-B007-484c-99D2-86A8A820991D), helpstring("IRTCSession2 Interface"), pointer_default(unique) ] interface IRTCSession2 : IRTCSession { [helpstring("Method SendInfo")] HRESULT SendInfo( [in] BSTR bstrInfoHeader, [in] BSTR bstrInfo, [in] LONG_PTR lCookie ); [propput, helpstring("property PreferredSecurityLevel")] HRESULT PreferredSecurityLevel( [in] RTC_SECURITY_TYPE enSecurityType, [in] RTC_SECURITY_LEVEL enSecurityLevel ); [propget, helpstring("property PreferredSecurityLevel")] HRESULT PreferredSecurityLevel( [in] RTC_SECURITY_TYPE enSecurityType, [out, retval] RTC_SECURITY_LEVEL * penSecurityLevel ); [helpstring("method IsSecurityEnabled")] HRESULT IsSecurityEnabled( [in] RTC_SECURITY_TYPE enSecurityType, [out, retval] VARIANT_BOOL * pfSecurityEnabled ); // // SessionDescription control // [helpstring("method AnswerWithSessionDescription")] HRESULT AnswerWithSessionDescription( [in] BSTR bstrContentType, [in] BSTR bstrSessionDescription ); [helpstring("method ReInviteWithSessionDescription")] HRESULT ReInviteWithSessionDescription( [in] BSTR bstrContentType, [in] BSTR bstrSessionDescription, [in] LONG_PTR lCookie ); }; [ object, uuid(E9A50D94-190B-4F82-9530-3B8EBF60758A), helpstring("IRTCSessionCallControl Interface"), pointer_default(unique) ] interface IRTCSessionCallControl : IUnknown { // hold, unhold methods [helpstring("method Hold")] HRESULT Hold( [in] LONG_PTR lCookie ); [helpstring("method UnHold")] HRESULT UnHold( [in] LONG_PTR lCookie ); // forward method [helpstring("method Forward")] HRESULT Forward( [in] BSTR bstrForwardToURI ); // refer methods [helpstring("method Refer")] HRESULT Refer( [in] BSTR bstrReferToURI, [in] BSTR bstrReferCookie ); [propput, helpstring("property ReferredByURI")] HRESULT ReferredByURI( [in] BSTR bstrReferredByURI ); [propget, helpstring("property ReferredByURI")] HRESULT ReferredByURI( [out, retval] BSTR *pbstrReferredByURI ); [propput, helpstring("property ReferCookie")] HRESULT ReferCookie( [in] BSTR bstrReferCookie ); [propget, helpstring("property ReferCookie")] HRESULT ReferCookie( [out, retval] BSTR *pbstrReferCookie ); [propget, helpstring("property IsReferred")] HRESULT IsReferred( [out, retval] VARIANT_BOOL *pfIsReferred ); }; [ 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(79960a6b-0cb1-4dc8-a805-7318e99902e8), dual, helpstring("IRTCRoamingEvent"), pointer_default(unique) ] interface IRTCRoamingEvent : IDispatch { [propget, id(1), helpstring("property EventType")] HRESULT EventType( [out, retval] RTC_ROAMING_EVENT_TYPE *pEventType ); [propget, id(2), helpstring("property Profile")] HRESULT Profile( [out, retval] IRTCProfile2 ** ppProfile ); [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(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_PTR * plCookie ); [propget, id(3), helpstring("property StatusCode")] HRESULT StatusCode( [out, retval] long * plStatusCode ); } [ object, uuid(62E56EDC-03FA-4121-94FB-23493FD0AE64), dual, helpstring("IRTCProfileEvent2"), pointer_default(unique) ] interface IRTCProfileEvent2 : IRTCProfileEvent { [propget, id(4), helpstring("property EventType")] HRESULT EventType( [out, retval] RTC_PROFILE_EVENT_TYPE *pEventType ); } [ 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(4F933171-6F95-4880-80D9-2EC8D495D261), dual, helpstring("IRTCSessionStateChangeEvent2"), pointer_default(unique) ] interface IRTCSessionStateChangeEvent2 : IRTCSessionStateChangeEvent { [propget, id(5), helpstring("property MediaTypes")] HRESULT MediaTypes( [out, retval] long * pMediaTypes ); [propget, id(6), helpstring("property RemotePreferredSecurityLevel")] HRESULT RemotePreferredSecurityLevel( [in] RTC_SECURITY_TYPE enSecurityType, [out, retval] RTC_SECURITY_LEVEL * penSecurityLevel ); [propget, id(7), helpstring("property IsForked")] HRESULT IsForked( [out, retval] VARIANT_BOOL *pfIsForked ); [id(8), helpstring("method GetRemoteSessionDescription")] HRESULT GetRemoteSessionDescription( [out] BSTR * pbstrContentType, [out] BSTR * pbstrSessionDescription ); }; [ 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_PTR * 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(f6fc2a9b-d5bc-4241-b436-1b8460c13832), dual, helpstring("IRTCSessionOperationCompleteEvent2"), pointer_default(unique) ] interface IRTCSessionOperationCompleteEvent2 : IRTCSessionOperationCompleteEvent { [propget, id(5), helpstring("property Participant")] HRESULT Participant( [out, retval] IRTCParticipant ** ppParticipant ); [id(6), helpstring("method GetRemoteSessionDescription")] HRESULT GetRemoteSessionDescription( [out] BSTR * pbstrContentType, [out] BSTR * pbstrSessionDescription ); } [ 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(484A7F1E-73F0-4990-BFC2-60BC3978A720), dual, helpstring("IRTCBuddyEvent2"), pointer_default(unique) ] interface IRTCBuddyEvent2 : IRTCBuddyEvent { [propget, id(2), helpstring("property EventType")] HRESULT EventType( [out, retval] RTC_BUDDY_EVENT_TYPE * pEventType ); [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(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(E52891E8-188C-49AF-B005-98ED13F83F9C), dual, helpstring("IRTCBuddyEvent2"), pointer_default(unique) ] interface IRTCWatcherEvent2 : IRTCWatcherEvent { [propget, id(2), helpstring("property EventType")] HRESULT EventType( [out, retval] RTC_WATCHER_EVENT_TYPE * pEventType ); [propget, id(3), helpstring("property StatusCode")] HRESULT StatusCode( [out, retval] long * plStatusCode ); } [ object, uuid(3A79E1D1-B736-4414-96F8-BBC7F08863E4), dual, helpstring("IRTCBuddyGroupEvent"), pointer_default(unique) ] interface IRTCBuddyGroupEvent : IDispatch { [propget, id(1), helpstring("property EventType")] HRESULT EventType( [out, retval] RTC_GROUP_EVENT_TYPE * pEventType ); [propget, id(2), helpstring("property Group")] HRESULT Group( [out, retval] IRTCBuddyGroup ** ppGroup ); [propget, id(3), helpstring("property Buddy")] HRESULT Buddy( [out, retval] IRTCBuddy2 ** ppBuddy ); [propget, id(4), helpstring("property StatusCode")] HRESULT StatusCode( [out, retval] long * plStatusCode ); } [ object, uuid(4E1D68AE-1912-4f49-B2C3-594FADFD425F), dual, helpstring("IRTCInfoEvent"), pointer_default(unique) ] interface IRTCInfoEvent : IDispatch { [propget, id(1), helpstring("property Session")] HRESULT Session( [out, retval] IRTCSession2 ** ppSession ); [propget, id(2), helpstring("property Participant")] HRESULT Participant( [out, retval] IRTCParticipant ** ppParticipant ); [propget, id(3), helpstring("property Info")] HRESULT Info( [out, retval] BSTR * pbstrInfo ); [propget, id(4), helpstring("property InfoHeader")] HRESULT InfoHeader( [out, retval] BSTR * pbstrInfoHeader ); } [ object, uuid(52572D15-148C-4d97-A36C-2DA55C289D63), dual, helpstring("IRTCMediaRequestEvent"), pointer_default(unique) ] interface IRTCMediaRequestEvent : IDispatch { [propget, id(1), helpstring("property Session")] HRESULT Session( [out, retval] IRTCSession2 ** ppSession ); [propget, id(2), helpstring("property ProposedMedia")] HRESULT ProposedMedia( [out, retval] long * plMediaTypes ); [propget, id(3), helpstring("property CurrentMedia")] HRESULT CurrentMedia( [out, retval] long * plMediaTypes ); [id(4), helpstring("method Accept")] HRESULT Accept( [in] long lMediaTypes ); [propget, id(5), helpstring("property RemotePreferredSecurityLevel")] HRESULT RemotePreferredSecurityLevel( [in] RTC_SECURITY_TYPE enSecurityType, [out, retval] RTC_SECURITY_LEVEL * penSecurityLevel ); [id(6), helpstring("method Reject")] HRESULT Reject(); [propget, id(7), helpstring("property State")] HRESULT State( [out, retval] RTC_REINVITE_STATE *pState ); } [ object, uuid(11558D84-204C-43e7-99B0-2034E9417F7D), dual, helpstring("IRTCReInviteEvent"), pointer_default(unique) ] interface IRTCReInviteEvent : IDispatch { [propget, id(1), helpstring("property Session")] HRESULT Session( [out, retval] IRTCSession2 ** ppSession2 ); [id(2), helpstring("method Accept")] HRESULT Accept( [in] BSTR bstrContentType, [in] BSTR bstrSessionDescription ); [id(3), helpstring("method Reject")] HRESULT Reject(); [propget, id(4), helpstring("property State")] HRESULT State( [out, retval] RTC_REINVITE_STATE *pState ); [id(5), helpstring("method GetRemoteSessionDescription")] HRESULT GetRemoteSessionDescription( [out] BSTR * pbstrContentType, [out] BSTR * pbstrSessionDescription ); } [ object, uuid(F777F570-A820-49d5-86BD-E099493F1518), dual, helpstring("IRTCPresencePropertyEvent"), pointer_default(unique) ] interface IRTCPresencePropertyEvent : IDispatch { [propget, id(1), helpstring("property StatusCode")] HRESULT StatusCode( [out, retval] long * plStatusCode ); [propget, id(2), helpstring("property StatusText")] HRESULT StatusText( [out, retval] BSTR * pbstrStatusText ); [propget, id(3), helpstring("property PresenceProperty")] HRESULT PresenceProperty( [out, retval] RTC_PRESENCE_PROPERTY *penPresProp); [propget, id(4), helpstring("property Value")] HRESULT Value( [out, retval] BSTR * pbstrValue ); } [ object, uuid(38F0E78C-8B87-4c04-A82D-AEDD83C909BB), dual, helpstring("IRTCPresenceDataEvent"), pointer_default(unique) ] interface IRTCPresenceDataEvent : IDispatch { [propget, id(1), helpstring("property StatusCode")] HRESULT StatusCode( [out, retval] long * plStatusCode ); [propget, id(2), helpstring("property StatusText")] HRESULT StatusText( [out, retval] BSTR * pbstrStatusText ); [id(3), helpstring("method GetPresenceData")] HRESULT GetPresenceData([out] BSTR *pbstrNamespace, [out] BSTR *pbstrData); } [ object, uuid(78673F32-4A0F-462c-89AA-EE7706707678), dual, helpstring("IRTCPresenceStatusEvent"), pointer_default(unique) ] interface IRTCPresenceStatusEvent : IDispatch { [propget, id(1), helpstring("property StatusCode")] HRESULT StatusCode( [out, retval] long * plStatusCode ); [propget, id(2), helpstring("property StatusText")] HRESULT StatusText( [out, retval] BSTR * pbstrStatusText ); [id(3), helpstring("method GetLocalPresenceInfo")] HRESULT GetLocalPresenceInfo([out] RTC_PRESENCE_STATUS *penStatus, [out] BSTR *pbstrNotes); } [ 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(742378D6-A141-4415-8F27-35D99076CF5D), hidden, helpstring("IRTCEnumGroups interface"), pointer_default(unique) ] interface IRTCEnumGroups : IUnknown { HRESULT Next( [in] ULONG celt, [out, size_is(celt)] IRTCBuddyGroup ** ppElements, [in,out,ptr] ULONG * pceltFetched ); HRESULT Reset( void ); HRESULT Skip ( [in] ULONG celt ); HRESULT Clone ( [out, retval] IRTCEnumGroups ** 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(102F9588-23E7-40e3-954D-CD7A1D5C0361), helpstring("IRTCBuddy2 Interface"), pointer_default(unique) ] interface IRTCBuddy2 : IRTCBuddy { [propget, helpstring("property Profile")] HRESULT Profile( [out, retval] IRTCProfile2 ** ppProfile ); [helpstring("method Refresh")] HRESULT Refresh(); [hidden, helpstring("method EnumerateGroups")] HRESULT EnumerateGroups( [out, retval] IRTCEnumGroups ** ppEnum ); [propget, helpstring("property Groups")] HRESULT Groups( [out, retval] IRTCCollection ** ppCollection ); [propget, helpstring("property PresenceProperty")] HRESULT PresenceProperty([in] RTC_PRESENCE_PROPERTY enProperty, [out,retval] BSTR *pbstrProperty); [helpstring("method EnumeratePresenceDevices ")] HRESULT EnumeratePresenceDevices([out, retval] IRTCEnumPresenceDevices ** ppEnumDevices); [propget, helpstring("property PresenceDevices")] HRESULT PresenceDevices( [out, retval] IRTCCollection ** ppDevicesCollection ); [propget, helpstring("property SubscriptionType")] HRESULT SubscriptionType( [out, retval] RTC_BUDDY_SUBSCRIPTION_TYPE * penSubscriptionType ); }; [ 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(D4D9967F-D011-4b1d-91E3-ABA78F96393D), helpstring("IRTCWatcher2 Interface"), pointer_default(unique) ] interface IRTCWatcher2 : IRTCWatcher { [propget, helpstring("property Profile")] HRESULT Profile( [out, retval] IRTCProfile2 ** ppProfile ); [propget, helpstring("property Scope")] HRESULT Scope( [out, retval] RTC_ACE_SCOPE * penScope ); }; [ object, uuid(60361E68-9164-4389-A4C6-D0B3925BDA5E), helpstring("IRTCBuddyGroup Interface"), pointer_default(unique) ] interface IRTCBuddyGroup : IUnknown { [propget, helpstring("property Name")] HRESULT Name( [out, retval] BSTR * pbstrGroupName ); [propput, helpstring("property Name")] HRESULT Name( [in] BSTR bstrGroupName ); [helpstring("method AddBuddy")] HRESULT AddBuddy( [in] IRTCBuddy * pBuddy ); [helpstring("method RemoveBuddy")] HRESULT RemoveBuddy( [in] IRTCBuddy * pBuddy ); [hidden, helpstring("method EnumerateBuddies")] HRESULT EnumerateBuddies( [out, retval] IRTCEnumBuddies ** ppEnum ); [propget, helpstring("property Buddies")] HRESULT Buddies( [out, retval] IRTCCollection ** ppCollection ); [propget, helpstring("property Data")] HRESULT Data( [out, retval] BSTR * pbstrData ); [propput, helpstring("property Data")] HRESULT Data( [in] BSTR bstrData ); [propget, helpstring("property Profile")] HRESULT Profile( [out, retval] IRTCProfile2 ** ppProfile ); } [ 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 ); }; [ object, uuid(DA77C14B-6208-43ca-8DDF-5B60A0A69FAC), helpstring("IRTCPortManager Interface"), oleautomation, pointer_default(unique) ] interface IRTCPortManager : IUnknown { [id(1), helpstring("method GetMapping")] HRESULT GetMapping( [in] BSTR bstrRemoteAddress, [in] RTC_PORT_TYPE enPortType, [in, out] BSTR * pbstrInternalLocalAddress, [in, out] long * plInternalLocalPort, [in, out] BSTR * pbstrExternalLocalAddress, [in, out] long * plExternalLocalPort ); [id(2), helpstring("method UpdateRemoteAddress")] HRESULT UpdateRemoteAddress( [in] BSTR bstrRemoteAddress, [in] BSTR bstrInternalLocalAddress, [in] long lInternalLocalPort, [in] BSTR bstrExternalLocalAddress, [in] long lExternalLocalPort ); [id(3), helpstring("method ReleaseMapping")] HRESULT ReleaseMapping( [in] BSTR bstrInternalLocalAddress, [in] long lInternalLocalPort, [in] BSTR bstrExternalLocalAddress, [in] long lExternalLocalAddress ); } [ object, uuid(a072f1d6-0286-4e1f-85f2-17a2948456ec), helpstring("IRTCSessionPortManagement Interface"), pointer_default(unique) ] interface IRTCSessionPortManagement : IUnknown { HRESULT SetPortManager( [in] IRTCPortManager * pPortManager ); }; [ object, uuid(d5df3f03-4bde-4417-aefe-71177bdaea66), helpstring("IRTCClientPortManagement Interface"), pointer_default(unique) ] interface IRTCClientPortManagement : IUnknown { HRESULT StartListenAddressAndPort( [in] BSTR bstrInternalLocalAddress, [in] long lInternalLocalPort ); HRESULT StopListenAddressAndPort( [in] BSTR bstrInternalLocalAddress, [in] long lInternalLocalPort ); [helpstring("method GetPortRange")] HRESULT GetPortRange( [in] RTC_PORT_TYPE enPortType, [out] long * plMinValue, [out] long * plMaxValue ); }; ///////User search interfaces [ object, uuid(B619882B-860C-4db4-BE1B-693B6505BBE5), helpstring("IRTCUserSearch Interface"), pointer_default(unique) ] interface IRTCUserSearch : IUnknown { [helpstring("method CreateQuery")] HRESULT CreateQuery( [out, retval] IRTCUserSearchQuery ** ppQuery ); [helpstring("method ExecuteSearch")] HRESULT ExecuteSearch( [in] IRTCUserSearchQuery * pQuery, [in] IRTCProfile * pProfile, [in] LONG_PTR lCookie ); }; [ object, uuid(288300F5-D23A-4365-9A73-9985C98C2881), helpstring("IRTCUserSearchQuery Interface"), pointer_default(unique) ] interface IRTCUserSearchQuery : IUnknown { [propput, helpstring("property SearchTerm")] HRESULT SearchTerm( [in] BSTR bstrName, [in] BSTR bstrValue ); [propget, helpstring("property SearchTerm")] HRESULT SearchTerm( [in] BSTR bstrName, [out, retval] BSTR * pbstrValue ); [propget, helpstring("property SearchTerms")] HRESULT SearchTerms( [out, retval] BSTR * pbstrNames ); [propput, helpstring("property SearchPreference")] HRESULT SearchPreference( [in] RTC_USER_SEARCH_PREFERENCE enPreference, [in] long lValue ); [propget, helpstring("property SearchPreference")] HRESULT SearchPreference( [in] RTC_USER_SEARCH_PREFERENCE enPreference, [out, retval] long * plValue ); [propput, helpstring("property SearchDomain")] HRESULT SearchDomain( [in] BSTR bstrDomain ); [propget, helpstring("property SearchDomain")] HRESULT SearchDomain( [out, retval] BSTR * pbstrDomain ); } [ object, uuid(851278B2-9592-480f-8DB5-2DE86B26B54D), helpstring("IRTCUserSearchResult interface"), pointer_default(unique) ] interface IRTCUserSearchResult : IUnknown { [propget, id(1), helpstring("property Value")] HRESULT Value( [in] RTC_USER_SEARCH_COLUMN enColumn, [out, retval] BSTR * pbstrValue ); }; [ object, uuid(83D4D877-AA5D-4a5b-8D0E-002A8067E0E8), helpstring("IRTCEnumUserSearchResults interface"), pointer_default(unique) ] interface IRTCEnumUserSearchResults : IUnknown { HRESULT Next( [in] ULONG celt, [out, size_is(celt)] IRTCUserSearchResult ** ppElements, [in,out,ptr] ULONG * pceltFetched ); HRESULT Reset( void ); HRESULT Skip ( [in] ULONG celt ); HRESULT Clone ( [out, retval] IRTCEnumUserSearchResults ** ppEnum ); } [ object, uuid(D8C8C3CD-7FAC-4088-81C5-C24CBC0938E3), dual, helpstring("IRTCUserSearchResultsEvent Interface"), pointer_default(unique) ] interface IRTCUserSearchResultsEvent : IDispatch { [hidden, id(1), helpstring("method EnumerateResults")] HRESULT EnumerateResults( [out, retval] IRTCEnumUserSearchResults** ppEnum ); [propget, id(2), helpstring("property Results")] HRESULT Results( [out, retval] IRTCCollection ** ppCollection ); [propget, id(3), helpstring("property Profile")] HRESULT Profile( [out, retval] IRTCProfile2 ** ppProfile ); [propget, id(4), helpstring("property Query")] HRESULT Query( [out, retval] IRTCUserSearchQuery ** ppQuery ); [propget, id(5), helpstring("property Cookie")] HRESULT Cookie( [out, retval] LONG_PTR *plCookie ); [propget, id(6), helpstring("property StatusCode")] HRESULT StatusCode( [out, retval] long * plStatusCode ); [propget, id(7), helpstring("property MoreAvailable")] HRESULT MoreAvailable( [out, retval] VARIANT_BOOL * pfMoreAvailable ); }; [ object, uuid(3D8FC2CD-5D76-44AB-BB68-2A80353B34A2), dual, helpstring("IRTCSessionReferStatusEvent"), pointer_default(unique) ] interface IRTCSessionReferStatusEvent : IDispatch { [propget, id(1), helpstring("property Session")] HRESULT Session( [out, retval] IRTCSession2 ** ppSession ); [propget, id(2), helpstring("property ReferStatus")] HRESULT ReferStatus( [out, retval] RTC_SESSION_REFER_STATUS * penReferStatus ); [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(176A6828-4FCC-4F28-A862-04597A6CF1C4), dual, helpstring("IRTCSessionReferredEvent"), pointer_default(unique) ] interface IRTCSessionReferredEvent : IDispatch { [propget, id(1), helpstring("property Session")] HRESULT Session( [out, retval] IRTCSession2 ** ppSession ); [propget, id(2), helpstring("property ReferredByURI")] HRESULT ReferredByURI( [out, retval] BSTR * pbstrReferredByURI ); [propget, id(3), helpstring("property ReferToURI")] HRESULT ReferToURI( [out, retval] BSTR * pbstrReferoURI ); [propget, id(4), helpstring("property ReferCookie")] HRESULT ReferCookie( [out, retval] BSTR * pbstrReferCookie ); [id(5), helpstring("method Accept")] HRESULT Accept(); [id(6), helpstring("method Reject")] HRESULT Reject(); [id(7), helpstring("method SetReferredSessionState")] HRESULT SetReferredSessionState( [in] RTC_SESSION_STATE enState ); }; [ object, uuid(BA7F518E-D336-4070-93A6-865395C843F9), helpstring("IRTCSessionDescriptionManager Interface"), oleautomation, pointer_default(unique) ] interface IRTCSessionDescriptionManager : IUnknown { [id(1), helpstring("method EvaluateSessionDescription")] HRESULT EvaluateSessionDescription( [in] BSTR bstrContentType, [in] BSTR bstrSessionDescription, [in, out] VARIANT_BOOL *pfApplicationSession ); }; [ object, uuid(708C2AB7-8BF8-42f8-8C7D-635197AD5539), hidden, helpstring("IRTCEnumPresenceDevices interface"), pointer_default(unique) ] interface IRTCEnumPresenceDevices : IUnknown { HRESULT Next( [in] ULONG celt, [out, size_is(celt)] IRTCPresenceDevice ** ppElements, [in,out,ptr] ULONG * pceltFetched ); HRESULT Reset( void ); HRESULT Skip ( [in] ULONG celt ); HRESULT Clone ( [out, retval] IRTCEnumPresenceDevices ** ppEnum ); } [ object, uuid(BC6A90DD-AD9A-48da-9B0C-2515E38521AD), helpstring("IRTCPresenceDevice Interface"), pointer_default(unique) ] interface IRTCPresenceDevice : IUnknown { [propget, helpstring("property Status")] HRESULT Status([out, retval] RTC_PRESENCE_STATUS * penStatus); [propget, helpstring("property Notes")] HRESULT Notes([out, retval] BSTR * pbstrNotes); [propget, helpstring("property PresenceProperty")] HRESULT PresenceProperty([in] RTC_PRESENCE_PROPERTY enProperty, [out,retval] BSTR *pbstrProperty); [helpstring("method GetPresenceData")] HRESULT GetPresenceData([out] BSTR *pbstrNamespace, [out] BSTR *pbstrData); }; [ uuid(cd260094-de10-4aee-ac73-ef87f6e12683), version(1.2), helpstring("RTCCore 1.2 Type Library") ] library RTCCORELib { importlib("stdole32.tlb"); interface IRTCProfile; interface IRTCProfile2; interface IRTCEnumProfiles; interface IRTCSession; interface IRTCSession2; interface IRTCSessionCallControl; interface IRTCParticipant; interface IRTCEnumParticipants; interface IRTCCollection; interface IRTCBuddy; interface IRTCBuddy2; interface IRTCEnumBuddies; interface IRTCWatcher; interface IRTCWatcher2; interface IRTCEnumWatchers; interface IRTCBuddyGroup; interface IRTCEnumGroups; interface IRTCUserSearchQuery; interface IRTCUserSearchResult; interface IRTCEnumUserSearchResults; interface IRTCEventNotification; interface IRTCClientEvent; interface IRTCRegistrationStateChangeEvent; interface IRTCSessionStateChangeEvent; interface IRTCSessionStateChangeEvent2; interface IRTCSessionOperationCompleteEvent; interface IRTCSessionOperationCompleteEvent2; interface IRTCParticipantStateChangeEvent; interface IRTCMediaEvent; interface IRTCIntensityEvent; interface IRTCMessagingEvent; interface IRTCBuddyEvent; interface IRTCBuddyEvent2; interface IRTCWatcherEvent; interface IRTCPortManager; interface IRTCSessionPortManagement; interface IRTCClientPortManagement; interface IRTCWatcherEvent2; interface IRTCBuddyGroupEvent; interface IRTCProfileEvent; interface IRTCProfileEvent2; interface IRTCUserSearchResultsEvent; interface IRTCInfoEvent; interface IRTCRoamingEvent; interface IRTCMediaRequestEvent; interface IRTCReInviteEvent; interface IRTCPresencePropertyEvent; interface IRTCPresenceDataEvent; interface IRTCPresenceStatusEvent; interface IRTCSessionReferStatusEvent; interface IRTCSessionReferredEvent; interface IRTCSessionDescriptionManager; interface IRTCEnumPresenceDevices; interface IRTCPresenceDevice; dispinterface IRTCDispatchEventNotification; [ uuid(7a42ea29-a2b7-40c4-b091-f6f024aa89be), helpstring("RTCClient Class") ] coclass RTCClient { [default] interface IRTCClient; interface IRTCClient2; interface IRTCClientPresence; interface IRTCClientPresence2; interface IRTCClientProvisioning; interface IRTCClientProvisioning2; interface IRTCUserSearch; [default, source] dispinterface IRTCDispatchEventNotification; [defaultvtable, source] interface IRTCEventNotification; }; };